繁体   English   中英

全局变量中的 Python API 连接 - 分配不起作用

[英]Python API connection in global variable - assignment doesn't work

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

我正在尝试将我的 API 连接实例存储在全局变量中以供以后重用。 要访问或实例化它,我使用上面的 function。 不幸的是,调用 function 后 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

这个对我有用。 我将您的代码修改如下以进行可视化:

>>> 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

我认为这个方法APIConnection(SERVER)也返回 None 。 这就是为什么您没有看到变量变化的原因。 你能检查出这个方法吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM