在Python中,似乎import
是真正的词法范围。这是真的吗?
例如,如果你这样做:
def some_function:
import sys
print sys.argv[0]
您将收到错误消息:
Traceback (most recent call last):
File "example.py", line 4, in <module>
print sys.argv[0]
NameError: name 'sys' is not defined
在Perl中,
use
语句不是词法范围的,但如果您试图在词法上(即在子例程中)定义它们,Perl不会给出语法错误。这样做会导致混淆,被认为是非常糟糕的做法。
在Python中,这似乎并不是事情的运作方式。我相信我已经在某个地方读到,将import
语句放在代码顶部是一种良好的做法,但如果它们是真正的词法范围,则示例似乎显示(意味着它们不能在他们被定义的范围之外访问,我不明白为什么把它们放在你使用它们的地方被认为是不好的做法。
是否有任何理由在词汇表中使用import
在Python中是不好的做法?如果是,请解释原因?
答案 0 :(得分:0)
你会在这里找到一个非常好的答案.... Should Python import statements always be at the top of a module?
现在还不是。