我正在学习python中的类。如果我的语言有点草率,我很抱歉,但我仍然试图了解课程的确切运作方式。
在完成我自己的一些项目时,我经常发现自己想要在初始化时将一个对象添加到列表中,这样我就可以跟踪我对该类型所做的所有对象。我一直试图通过以下方式做到这一点:
class My_Class(object):
Object_List=[]
def __init__(self):
Object_List.append(self)
然而,据我所知," _ _init _ _"套件在其命名空间中没有对象列表。如果这是正确的,那似乎是有意义的,因为函数有自己的命名空间。然而问题是上面的代码不起作用。我似乎无法将我的对象添加到全局定义的列表中。
任何人都可以提出另一种方法来完成同样的事情,并最终得到我创建的所有My_Class对象的列表吗?
答案 0 :(得分:3)
尝试以下方法:
>>> class A():
... my_list = []
... def __init__(self):
... A.my_list.append(self)
...
>>>
>>> a = A()
>>> A.my_list
[<__main__.A instance at 0x0000000002563548>]
>>> b = A()
>>> A.my_list
[<__main__.A instance at 0x0000000002563548>, <__main__.A instance at 0x00000000025FB408>]