类中的属性错误龟类继承

问题描述

class Turtle_new(turtle.Turtle):
  def __init__(self):
    self.walks = 10000

  def go(self):
    r1 = random.randint(0,90)
    r2 = random.randint(270,360)
    if random.randint(0,1): 
      self.setheading(r1)
    else:
      self.setheading(r2)
    self.pensize(3)
    self.speed('fast')
    r4 = random.randint(0,255)

self.setheading(r1).

属性错误出现在第 9 行。

'Turtle_new' 对象没有属性 '_orient'

这是错误。我已将“self.setheading”更改为“super()”,但出现错误。同样的错误发生在 self.speed('fast) 将“_orient”更改为“_screen”。 有什么问题?

解决方法

您必须确保调用 Turtle.__init__ 以便正确初始化您的实例。与某些语言不同,父初始化器不会自动调用;你必须明确。

from turtle import Turtle


class Turtle_new(Turtle):
    def __init__(self,kwargs):
         super().__init__(**kwargs)
         self.walks = 10000

    ...

Turtle.__init__(间接)初始化 self._orient。究竟如何与此答案无关;如果您好奇,可以探索the turtle module