Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
全局变量赋值中的Python API连接不';行不通_Python_Api_Global Variables - Fatal编程技术网

全局变量赋值中的Python 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连接实例存储在一个全局变量中,以便以后重用。要访问或实例化它,我使用上面的函数。不幸的是,api_连接变量在调用函数后没有改变。我做错了什么

编辑: 这让我更加困惑

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