【发布时间】:2019-05-12 08:42:34
【问题描述】:
我正在研究 python,并且在vscode 中遇到了 global 关键字。到目前为止代码正在运行,但 vscode linter 引发错误,我想了解原因
我尝试过使用 global 关键字,即使出现 linter 错误,代码也能正常工作。我尝试使用局部变量并没有收到任何错误
def whatIs ():
global myvalue
myvalue +=10
print("myvalue: {}".format(myvalue))
myvalue=10
whatIs()
print("myvalue: {}".format(myvalue))
linter 指向函数中的myvalue:
未定义变量 'myvalue' pylint(undefined-variable)
但输出是我所期望的。
myvalue: 20
myvalue: 20
好像vscode 不喜欢全局关键字
【问题讨论】:
-
linter 正在从顶部检查代码。当它检查
whatIs方法时,它并不知道全局变量myvalue将在以后被定义。 -
为什么要使用
global是第一个问题?您可以传递参数并以最简单易读的方式返回结果。 -
pylint对global进行自动例外处理。根据它的规则,你永远没有权利使用它。这只是一种正确的,而不是所有的时间。
标签: python visual-studio-code global