所以,我正在尝试学习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.Turtle的子类。 (下一步是让乌龟的行为与标准乌龟不同)
所以下面的评论让我觉得也许我可以做到这一点:
import turtle
class TurtleGTX(turtle.Turtle):
"""My own version of turtle"""
my_turtle = TurtleGTX()
my_turtle.forward(100)
实际运行!现在我要看看它带给我什么......有些东西告诉我,我可能已经向前退了两步,因为这意味着我将无法在我的子类上初始化任何东西......
答案 0 :(得分:3)
总结伊格纳西奥的回答和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)
答案 1 :(得分:2)
如果您在子类中重新定义方法(例如__init__()
),那么您有责任调用父方法,以便尊重父方的行为。