2

1 つの継承からすべてのクラスを移動しようとしています。私はこの小さなスクリプトを書きました:

class c1:
    def move():
        x+=1
        y+=1
class c2(c1):
    y=1
    x=2
c=c2
c.move()
print(str(c.x)+" , "+str(c.y))

私がそれを実行すると、次のようになります:

Traceback (most recent call last):   File "/home/tor/Workspace/try.py", line 9, in <module>
     c.move() TypeError: unbound method move() must be called with c2 instance as first argument (got nothing instead) [Finished in 0.1s
with exit code 1]

私は何を間違えましたか?

4

1 に答える 1

9
  1. あなたは何もインスタンス化しません

  2. すべてのメソッドは、伝統的に と呼ばれる少なくとも 1 つのパラメータを取る必要がありますself

  3. selfオブジェクト フィールドにアクセスする必要があります。あなたのコードは現在、そのスコープに存在しないローカル変数を変更しています。

于 2013-10-18T05:53:16.477 に答える