如何创建一个从turtle模块继承的python子类

2024-10-01 15:34:48 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我在努力学习python,每次我在这里发帖,我都会觉得自己在屈服。。。在

我想让我自己的班级乌龟。乌龟. 在

    import turtle
class TurtleGTX(turtle.Turtle):
    """My own version of turtle"""
    def __init__(self):
        pass

my_turtle = TurtleGTX()
my_turtle.forward(10)

给出回溯:AttributeError:'TurtleGTX'对象没有属性''u position'。然后我了解到它是一个“私有变量”,根据官方python教程,我可以在我的子类TurtleGTX中破坏/重写它。如何在像turtle这样大的程序中实现这一点似乎相当困难,这意味着我缺少一个更简单的解决方案。最后,我了解了这一点,但我仍然希望在社区中运行它,看看是否有一种优雅的方法来创建乌龟。乌龟. (下一步是让你的乌龟表现出不同于标准乌龟的行为)

所以下面的一句话让我觉得也许我可以这样做:

^{pr2}$

实际运行情况!现在我要看看这会让我。。。一些东西告诉我,我可能已经前进了一步,后退了两步,因为这意味着我将无法初始化我的子类上的任何东西。。。在


Tags: ofimportversionmydef子类classturtle
2条回答

如果您在子类中重新定义了一个方法(例如__init__()),那么您有责任调用父类的方法,以便尊重父类的行为。在

把伊格纳西奥的回答和奥鲁库崎的评论加起来,你可能应该写些

import turtle
class TurtleGTX(turtle.Turtle):
    """My own version of turtle"""
    def __init__(self,*args,**kwargs):
        super(TurtleGTX,self).__init__(*args,**kwargs)
        print("Time for my GTX turtle!")

my_turtle = TurtleGTX()
my_turtle.forward(100)

相关问题 更多 >

    热门问题