Python 将对象的实例声明为';全球';在'__初始';

Python 将对象的实例声明为';全球';在'__初始';,python,Python,我正在维护一个用Python编写的应用程序,遇到了如下情况: class A(): def __init__(self): ... global a a = self ... >>> o1 = A() >>> a is o1 # o1 was most recently instantiated True >>> o2 = A() >>> a is

我正在维护一个用Python编写的应用程序,遇到了如下情况:

class A():

    def __init__(self):
        ...
        global a
        a = self

    ...
>>> o1 = A()
>>> a is o1    # o1 was most recently instantiated
True
>>> o2 = A()
>>> a is o1    # o1 is no longer the most recently instantiated ...
False
>>> a is o2    # ... o2 is
True
有人能详细解释一下这里发生了什么,以及宣布自我为全球的目的是什么吗?

这两行

global a
a = self
使名为
a
的全局变量引用当前调用其
\uuuu init\uuu
方法的任何对象。实际上,应用程序似乎在跟踪最近实例化的
A
的实例。它应该是这样工作的:

class A():

    def __init__(self):
        ...
        global a
        a = self

    ...
>>> o1 = A()
>>> a is o1    # o1 was most recently instantiated
True
>>> o2 = A()
>>> a is o1    # o1 is no longer the most recently instantiated ...
False
>>> a is o2    # ... o2 is
True