繁体   English   中英

在Python中,如何在初始化时将每个新类实例添加到列表中?

[英]In Python how can I add each new instance of a class to a list upon initialization?

我现在正在学习python中的类。 如果我的语言有点草率,我很抱歉,但我仍在努力了解课程的确切运作方式。

在完成我自己的一些项目时,我经常发现自己想要在初始化时将对象添加到列表中,这样我就可以跟踪我对该类型所做的所有对象。 我一直试图通过以下方式做到这一点:

class My_Class(object):

    Object_List=[]

    def __init__(self):
        Object_List.append(self)

但是,据我所知,“_ _init _ _”套件在其命名空间中没有对象列表。 如果这是正确的,那似乎是有意义的,因为函数有自己的命名空间。 然而问题是上面的代码不起作用。 我似乎无法将我的对象添加到全局定义的列表中。

任何人都可以建议我可以完成同样的事情的另一种方式,并最终得到我创建的所有My_Class对象的列表?

请尝试以下方法:

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

暂无
暂无

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

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