1

これは私のクラスです:

class Player(object):
    def __init__(self, playernum):
    self.playernum = playernum

    def play_turn(self, board):
        """This method is passed an instance of ConnectFour.  
           It should examine the board (using methods on the ConnectFour class...
           assume you have it) and eventually call board.play_turn and return"""
    pass

これまでのところ、私がそうすれば次のことを理解しています:

class Human(Player):

Human() を Player の派生クラスにします。

私がやりたいことは、このクラス内にコンストラクター playernum を持たせることです。次に、オーバーライドされた play_turn を取得して、プレイヤー番号 (つまり、playernum) を出力します...これがどのように実装されるか知りたいだけです...繰り返しますか?

def play_turn(self,board):

Human クラス内に置くか、単に置くか

class Human(Player):
    play_turn

そして内部

play_turn(self,board):
    "put"
    print playernum

私は、クラスの派生とその背後にあるロジックに慣れていません。どんな入力でも大歓迎です。ありがとう。

4

1 に答える 1

4

親クラスのメソッドをオーバーライドするには、派生クラス内でメソッドを「繰り返す」ことは正しいです。コードは次のようになります。

class Human(Player):
    def play_turn(self, board):
        print self.playernum

派生クラスの共有ロジックを含めることを意図している場合play_turnは、最初に親のメソッドを呼び出します。

class Human(Player):
    def play_turn(self, board):
        super(Human, self).play_turn(board)
        print self.playernum
于 2013-03-14T20:11:56.100 に答える