问题:在创建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。
答案 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()
答案 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>]
感谢所有人:)