0
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?

4

2 に答える 2

6

クラスメソッドとインスタンスメソッドを混同しているようです。あなたはおそらくやりたかったでしょう:

listarez = lista()

その後

listarez.adds(a)
listarez.printer()
于 2012-11-07T12:47:26.880 に答える
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()

私があなたなら、辞書から派生したクラス(たとえば、{'ID string':movie object})を適切なオーバーロードメソッド(init、str、..)で使用します。そうすれば、itertoolsなどの標準的な方法を利用できます。

于 2012-11-07T12:54:12.527 に答える