创建对象后的Python方法

时间:2018-02-10 15:44:49

标签: python oop

问题:在创建Object之后,我需要在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")

如何在创建Object用户后在User .__ objList []中添加此UserObj? Python中是否有一个方法在初始化对象后执行? PS.I需要在userObj由类自动创建之后在User .__ objList中添加这个usrObj。

2 个答案:

答案 0 :(得分:1)

只需将代码添加到__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

答案 1 :(得分:0)

解决方案是:

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

感谢所有人:)