词汇范围Python导入语句是不好的做法?

时间:2015-09-24 20:40:34

标签: python coding-style standards python-import lexical-scope

在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中是不好的做法?如果是,请解释原因?

1 个答案:

答案 0 :(得分:0)

你会在这里找到一个非常好的答案.... Should Python import statements always be at the top of a module?

现在还不是。

相关问题