Удаление KB4338419 разрешило мои проблемы (Windows Server 2012 r2).
Как говорится в сообщении об ошибке, __init__()
должно возвращать None
, а не «bool
». Измените return True
на голое return
(что эквивалентно return None
).
for point in points:
if point == (self.x, self.y, pen):
return
Его метод
blockquote>__init__
проверяет, есть ли точка на холсте черепахи. Если он обнаружит, что он уже есть, мне нужно предотвратить дальнейшее выполнение init.Тем не менее, трудности, с которыми вы сталкиваетесь, свидетельствуют о недостатке дизайна. Точка не должна проверять внешний список точек и отказываться от построения; скорее код, создающий точку, должен выполнить проверку.
Я бы вытащил петлю из конструктора и сделал бы проверку вызывающей стороной.
Может быть, вы можете использовать что-то вроде этого?
class Point():
def __init__(self, pen, points=points):
self.x = pen.xcor()
self.y = pen.ycor()
for point in points:
if point == (self.x, self.y, pen):
return
points.append((self.x, self.y, pen))
self.pen = pen
self.get()