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