Python 3 Pycharm ide 警告
Python 3 Pycharm ide warning
我实际上对我的代码没有任何疑问,但我使用 ide 命名为 pycharm 而 运行 我的代码我没有收到任何错误,但我的 ide 警告我为什么会这样?
这是我的代码:
def hi():
global d
d = 5
hi()
print(d)
我的代码工作正常,但我的 ide 在代码的第 2 行给我一个警告,即全局变量 'd' 在模块级别未定义。
我是不是在我的代码中做错了什么我只是通过一个函数创建了一个全局变量并从ide函数中访问它。
有人知道为什么会这样吗?
正如你所说,没有错误,只是一个警告。您可以查看不同的检查严重级别 here
我引用这个网站:
Warning: marks code fragments that might produce bugs or require enhancement.
所以 Pycharm 试图告诉您,以这种方式使用全局可能会导致错误,尤其是当您的代码变得更加复杂时。出现此警告是为了让您重新思考代码的工作方式,并且可能有更好的方法来实现相同的目标。
在这种情况下,警告来自 d 在模块级别未定义的事实,可以通过定义它来解决,例如在顶部。
d = 11
一般来说,应该避免使用全局关键字 (see discussion here) 的原因有很多,但如果您知道为什么要使用它,那就没问题了。
从不推荐使用全局变量,因为它们将来可能会产生错误,请参阅 Why are global variables evil?
你的代码应该是
def hi():
return 5
print(hi())
我实际上对我的代码没有任何疑问,但我使用 ide 命名为 pycharm 而 运行 我的代码我没有收到任何错误,但我的 ide 警告我为什么会这样?
这是我的代码:
def hi():
global d
d = 5
hi()
print(d)
我的代码工作正常,但我的 ide 在代码的第 2 行给我一个警告,即全局变量 'd' 在模块级别未定义。
我是不是在我的代码中做错了什么我只是通过一个函数创建了一个全局变量并从ide函数中访问它。
有人知道为什么会这样吗?
正如你所说,没有错误,只是一个警告。您可以查看不同的检查严重级别 here
我引用这个网站:
Warning: marks code fragments that might produce bugs or require enhancement.
所以 Pycharm 试图告诉您,以这种方式使用全局可能会导致错误,尤其是当您的代码变得更加复杂时。出现此警告是为了让您重新思考代码的工作方式,并且可能有更好的方法来实现相同的目标。
在这种情况下,警告来自 d 在模块级别未定义的事实,可以通过定义它来解决,例如在顶部。
d = 11
一般来说,应该避免使用全局关键字 (see discussion here) 的原因有很多,但如果您知道为什么要使用它,那就没问题了。
从不推荐使用全局变量,因为它们将来可能会产生错误,请参阅 Why are global variables evil?
你的代码应该是
def hi():
return 5
print(hi())