全局变量赋值中的Python API连接不';行不通
我试图将我的API连接实例存储在一个全局变量中,以便以后重用。要访问或实例化它,我使用上面的函数。不幸的是,api_连接变量在调用函数后没有改变。我做错了什么 编辑: 这让我更加困惑全局变量赋值中的Python API连接不';行不通,python,api,global-variables,Python,Api,Global Variables,我试图将我的API连接实例存储在一个全局变量中,以便以后重用。要访问或实例化它,我使用上面的函数。不幸的是,api_连接变量在调用函数后没有改变。我做错了什么 编辑: 这让我更加困惑 api_connection = None def get_connection(): global api_connection if api_connection is None: api_connection = APIConnection(SERVER)
api_connection = None
def get_connection():
global api_connection
if api_connection is None:
api_connection = APIConnection(SERVER)
return api_connection
else:
return api_connection
它对我有用。为了可视化,我修改了您的代码如下:
>>> c = get_connection()
>>> c == get_connection()
True
>>> c is get_connection()
True
>>> c is api_connection
False
>>> api_connection
>>> api_connection is None
True
我认为这个方法
APIConnection(SERVER)
也不会返回任何结果。这就是为什么变量没有变化。你能检查一下这个方法的正确性吗?我想你的困惑来自于你在shell中如何定义api\u连接。请说明您是如何做到这一点的。这只是pycharmYes的ipython外壳,但您究竟是如何定义或导入api_连接的?我在pycharm中使用上述代码运行了该文件,然后使用了python控制台。您在控制台会话中使用了什么代码来定义或导入api_连接?它不返回none,而是返回connection对象
>>> api_connection = None
>>>
>>>
>>> def get_connection():
... global api_connection
... if api_connection is None:
... api_connection = 10
... return api_connection
... else:
... return api_connection
...
>>> print(api_connection)
None
>>> get_connection()
10
>>> print(api_connection)
10