繁体   English   中英

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

[英]How to add elements from one class to another class list, python

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)  

所以我的问题是:如何制作一个包含另一个类中定义的元素列表的类,例如,一个包含电影列表的类以及一些修改列表的方法,例如添加一个新电影或删除一个包含以下内容的电影:一定的ID?

您似乎混淆了类方法和实例方法。 您可能想做:

listarez = lista()

接着

listarez.adds(a)
listarez.printer()

简短答案:

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()

如果我是你,我会使用一个从字典派生的类(例如{'ID string':movie object}),并使用正确的重载方法(init,str,..)。 这样,您就可以利用标准方法(例如itertools等)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM