根据文档所述:
通配符形式的导入语句
from module import *
仅允许在模块层级使用,在类或函数定义中使用将会引发SyntaxError
。
为什么?避免在函数中使用它有何意义?有什么问题吗?
根据文档所述:
通配符形式的导入语句
from module import *
仅允许在模块层级使用,在类或函数定义中使用将会引发SyntaxError
。
为什么?避免在函数中使用它有何意义?有什么问题吗?
def f():
exec "x = 2"
print x
在Python 2中按预期工作,而
def f():
exec("x = 2")
print(x)
在 Python 3 中会导致 NameError
错误。
globals()
字典或使用exec()
,因此静态确定可能被导入的所有名称是完全不可能的。 - Sven Marnachexec("x=2")
的话,引擎就会退回到第二个策略上。 - zer0uno