有没有办法在一个声明中结合导入和导入?
可以:
from random import choice
import random
合并成一个陈述?
答案 0 :(得分:5)
不,他们不能。
import_stmt ::= "import" module ["as" name] ( "," module ["as" name] )* | "from" relative_module "import" identifier ["as" name] ( "," identifier ["as" name] )* | "from" relative_module "import" "(" identifier ["as" name] ( "," identifier ["as" name] )* [","] ")" | "from" module "import" "*"
import module
和from relative_module import
表单是语法中两个完全独立的表单。
答案 1 :(得分:2)
我认为MartijnPieters有点仓促。确实这很奇怪,但这是一种方式:
random, choice = (lambda x: (x, x.choice))(__import__("random"))
您看,__import__("random")
返回random
模块对象。然后我们将其传递给lambda
函数。 lambda
函数将模块和模块的choice
属性作为元组返回。然后,我们将random
和choice
分配给该元组。我永远不会在常规代码中使用它,但你可以这样做。我愿意:
import random
choice = random.choice