如何在PYTHON中创建继承自Turtle模块的子类

问题描述

所以,我正在努力学习Python,每次我在这里发布问题时,我都感觉像是屈服了…

我在试着做我自己的乌龟。乌龟。

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

my_turtle = TurtleGTX()
my_turtle.forward(10)

提供了TraceBack:AttributeError:‘TurtleGTX’对象没有属性‘_Position’。然后我了解到它是一个"私有变量",根据官方的Python教程,我可以在我的子类TurtleGTX中破坏/覆盖它。如何在一个像Turtle这样大的程序中做到这一点似乎相当困难,这意味着我缺少一个更简单的问题解决方案。最后,我学到了这一点,但我仍然希望由社区来运行它,看看是否有一种优雅的方法来创建Turte.Turtle的子类。(下一步是让你的乌龟表现得与标准乌龟不同)

所以下面的一条评论让我想,也许我可以这样做:

import turtle
class TurtleGTX(turtle.Turtle):
    """My own version of turtle"""


my_turtle = TurtleGTX()
my_turtle.forward(100)

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


解决方案

综合Ignacio的回答和orokusaki的评论,您可能应该这样写

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)

相关文章