如何在python中创建一个继承自turtle Module的子类

Dre*_*lee 2 python inheritance subclass turtle-graphics

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

我正在尝试制作我自己的turtle.Turtle类。

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

my_turtle = TurtleGTX()
my_turtle.forward(10)
Run Code Online (Sandbox Code Playgroud)

提供回溯:AttributeError: 'TurtleGTX' object has no attribute '_position'。然后我学到的是一个“私有变量”,根据官方的python教程,我可以在我的子类TurtleGTX中修改/覆盖。如何用一个像乌龟一样大的程序来做到这一点似乎相当困难,这意味着我缺少一个更简单的问题解决方案。最后我学到了,这就是重点,但我仍然希望由社区运行它,看看是否有一种优雅的方式来创建一个turtle.Turtle的子类。(下一步是让你的乌龟表现出与标准乌龟不同的行为)

所以下面的评论让我觉得也许我可以这样做:

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


my_turtle = TurtleGTX()
my_turtle.forward(100)
Run Code Online (Sandbox Code Playgroud)

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

Odo*_*ois 6

总结 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)
Run Code Online (Sandbox Code Playgroud)