python - 如何使用某些构造函数创建派生类? (Python)

标签 python class

这是我的课:

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

我对类的派生及其背后的逻辑有点陌生。任何输入将不胜感激。谢谢。

最佳答案

你是正确的,要覆盖父类的方法,你在派生类中“重复”该方法。您的代码最终应该看起来像这样:

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

关于python - 如何使用某些构造函数创建派生类? (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15419196/

相关文章:

c++ - 模板类和根据迭代调用不同的构造函数

php - 使用 BulletProof 上传类时在上传前调整图像大小

Python:理解reduce()'s '初始化器'参数

python - Selenium - Firefox 的 MoveTargetOutOfBoundsException

python - 在同一图中绘制条形图和线条图,不同的 y 轴,没有 pandas

python - Pandas 列值排列

python - 从 MySQL(SQLAlchemy) 读取数据后需要帮助编写 bonobo XML writer 转换

python - 当类没有继承任何内容时,从命令行调用 python 脚本会出现语法错误,这是为什么?

actionscript-3 - AS3 在添加到另一个 AS 类文件上的舞台时访问 MovieClip

python - 在python中覆盖类变量?