有没有办法在一个语句中组合导入和导入?

时间:2016-04-21 06:47:35

标签: python python-import

有没有办法在一个声明中结合导入和导入?

可以:

from random import choice
import random

合并成一个陈述?

2 个答案:

答案 0 :(得分:5)

不,他们不能。

请参阅import statement grammar

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 modulefrom relative_module import表单是语法中两个完全独立的表单。

答案 1 :(得分:2)

我认为MartijnPieters有点仓促。确实这很奇怪,但这是一种方式:

random, choice = (lambda x: (x, x.choice))(__import__("random"))

您看,__import__("random")返回random模块对象。然后我们将其传递给lambda函数。 lambda函数将模块和模块的choice属性作为元组返回。然后,我们将randomchoice分配给该元组。我永远不会在常规代码中使用它,但你可以这样做。我愿意:

import random
choice = random.choice