创建对象后的Python方法

2024-06-08 19:51:06 发布

您现在位置:Python中文网/ 问答频道 /正文

问题:我需要Python中的一个特殊方法,该方法在对象创建之后执行。你知道吗

假设我有一个情况:

    ##-User Class;
    class User:
        __objList = []        ## User Class register of userObjs;
        __init__(self, name):
            self.name = name

    ##-and i create new UserObj;
    user = User("John Doe")

在创建对象User之后,如何在User.\uu objList[]中添加此UserObj? Python中是否有在对象初始化后执行的方法? 另外,我需要在用户中添加这个usrObj。在userObj被类自动创建之后,列出这个对象。你知道吗


Tags: andof对象方法nameselfregisterinit
2条回答

只需将代码添加到__init__函数,当您创建对象时,__init__函数中的代码将运行。你知道吗

class User(object):
    __objList = []
    def __init__(self, name):
        self.name = name
        # append object to list after create object
        self.__objList.append(self)

    @classmethod
    def showObjList(cls):
        for obj in cls.__objList:
            print("obj: (%s), name: (%s)" % (obj, obj.name))

a = User("Joy")
b = User("Hank")

User.showObjList()

picture show result

解决方案是:

    class User:
        objList = []
        def __init__(self, name):
            self.name = name
            User.objList.append(self)

    #
    u1 = User("Mike")
    u2 = User("Jhon")

    #
    print(User.objList)

    ##>OUTPUT:
    ## [<__main__.User object at 0x0170F8F0>,
    ##  <__main__.User object at 0x01B25E50>]

感谢所有人:)

相关问题 更多 >