假设我有以下课程
class Daddy:
children=[]
def addChild(self,aChild):
self.children.append(aChild)
class Child:
name = ''
def __init__(self, aName):
self.name = aName
aChild = Child('Peter')
aDaddy = Daddy()
aDaddy.addChild(aChild)
print aDaddy.children[0].name
del(aDaddy)
anotherDaddy = Daddy()
print anotherDaddy.children[0].name
Daddy()保持对对象aDaddy的引用,我得到以下输出:
Peter
Peter
答案 0 :(得分:5)
children
是一个类变量(类似于其他语言中的静态变量),因此它在Daddy
的所有实例中共享(与name
变量中的Child
相同{1}})。
在__init__
初始化它:
class Daddy:
def __init__(self):
self.children = []
def addChild(self,aChild):
self.children.append(aChild)