【发布时间】:2019-10-15 13:58:29
【问题描述】:
我已经编辑了我的脚本以删除所有 flake8 警告,除了一个:
/tmp/flake8.tempfile.py:535:26: F821 undefined name 'salt'
/tmp/flake8.tempfile.py:536:29: F821 undefined name 'salt'
/tmp/flake8.tempfile.py:554:22: F821 undefined name 'salt'
/tmp/flake8.tempfile.py:602:21: F821 undefined name 'salt'
/tmp/flake8.tempfile.py:602:32: F821 undefined name 'salt'
/tmp/flake8.tempfile.py:609:21: F821 undefined name 'salt'
/tmp/flake8.tempfile.py:609:32: F821 undefined name 'salt'
/tmp/flake8.tempfile.py:623:44: F821 undefined name 'salt'
/tmp/flake8.tempfile.py:646:39: F821 undefined name 'salt'
/tmp/flake8.tempfile.py:651:39: F821 undefined name 'salt'
/tmp/flake8.tempfile.py:654:39: F821 undefined name 'salt'
...
salt 是一个 hashlib 对象,被许多函数使用。它在脚本的主要部分(底部)中定义为:
salt = hashlib.sha512()
在使用数据更新之前。我所有其他全局变量都工作正常,所以我不知道为什么这个会使 flake8 脱落。
【问题讨论】:
-
但是如果
salt在if __name__ == '__main__':中定义并且你从另一个脚本导入你的模块(这样__main__-stuff 不会被执行),会有一个地方salt未定义? -
这不是一个模块。这是直接运行的主文件。
-
我在下面的答案中解释了我猜发生了什么。
-
非常感谢您的回复,但我将整个主要部分放在“if name == "main":" 中,问题神奇地出现了离开了。哦,好吧。
标签: python-3.x pep8 flake8