如何将元素从一个类添加到另一个类列表python

时间:2012-11-07 12:43:08

标签: python class

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)  

所以我的问题是:如何创建一个包含另一个类中定义的元素列表的类,例如一个包含电影列表的类和一些修改列表的方法,例如添加一个新电影或删除一个有特定身份证的电影?

2 个答案:

答案 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等。