python - 类中的 AttirbuteError(乌龟类继承)
问题描述
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
. 究竟如何与这个答案无关;如果您好奇,可以探索该turtle
模块。
推荐阅读
- jquery - JSON查询表
- javascript - 如何使用html2pdf向pdf添加水平线
- python - 如果具有特定数字的除法余数为零,则打印 - Python
- ffmpeg - ffmpeg:VLC 中的发布者元数据
- azure-web-app-service - Live SDK 应用程序 - 无法完成请求?
- python - 创建包含来自另一个列表的元素的大小为“n”的随机列表
- javascript - 如何将具有特定 ID 的数据传递给后端路由参数?
- javascript - 这个闭包在哪里泄漏内存?
- python - Pylint 或其他可以处理 functools.partial 的 linter
- multipartform-data - Quarkus + resteasy-multipart