如何在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)
相关文章