Python 全局范围变量显示“0”;未解析引用“;
我有以下代码:Python 全局范围变量显示“0”;未解析引用“;,python,python-3.x,Python,Python 3.x,我有以下代码: import json import os from botocore.vendored import requests from custom_validator import CustomValidator dev_mode = 'DEV' in os.environ access_token = None if dev_mode: import test_config as config else: import config as config de
import json
import os
from botocore.vendored import requests
from custom_validator import CustomValidator
dev_mode = 'DEV' in os.environ
access_token = None
if dev_mode:
import test_config as config
else:
import config as config
def myfunc(data):
if not (access_token):
.....
但是在myfunc
内部,我在尝试使用access\u令牌时遇到了未解析的引用
错误。
即使我在上面的初始化中将global
放在前面,我也会得到:
全局变量“access_token”在模块级别中未定义
我有点困惑——为什么会发生这种情况,我该如何解决
使用Python 3.6。请发布包括堆栈跟踪在内的整个错误消息。仅此而已。。我在PyCharm.Code中了解到了这一点,请检查导入中的内容,尤其是config
由于Python的LEGB变量作用域规则()而发生了这种情况。在if条件之前,您需要使用全局访问\u令牌
语句。为了访问/修改函数中的全局变量,您需要告诉Python它是一个全局变量,否则它将在赋值之前引发一个错误局部变量“access\u token”,或者创建一个局部变量(在赋值的情况下)。