class lista(object):
listanumere=[]
def printer(self):
print self.listanumere
def adds(self,numar):
self.listanumere.append(numar)
class movies():
def __init__(self,ide,nume):
self.__nume=nume
self.__ide=ide
listarez=lista
a=movies(1,"David")
lista.adds(a)
lista.printer()
错误:
TypeError: unbound method adds() must be called with lista instance as first argument (got movies instance instead)
所以我的问题是:如何创建一个包含另一个类中定义的元素列表的类,例如一个包含电影列表的类和一些修改列表的方法,例如添加一个新电影或删除一个有特定身份证的电影?
答案 0 :(得分:6)
您似乎混淆了类方法和实例方法。你可能想这样做:
listarez = lista()
然后
listarez.adds(a)
listarez.printer()
答案 1 :(得分:1)
简短回答:
class lista(object):
listanumere=[]
def printer(self):
print "\n".join( [ str(elem)for elem in self.listanumere ] )
def adds(self,numar):
self.listanumere.append(numar)
class movies():
def __init__(self,ide,nume):
self.__nume=nume
self.__ide=ide
def __str__(self):
return ":".join( [ str(self.__nume) , str(self.__ide) ] )
listarez=lista()
a=movies(1,"David")
b=movies(2,"Goliath")
listarez.adds(a)
listarez.adds(b)
listarez.printer()
如果我是你,我会使用正确的重载方法(init,str,..)来使用从词典(例如{'ID string':movie object})派生的类。这样你就可以采用标准方法,例如itertools等。