Я хочу создать многократных черепах во вновь созданном классе - PullRequest
0 голосов
/ 30 мая 2019

У меня возникла проблема, когда я должен создать простой объектно-ориентированный код, который создает двух черепах, движущихся в противоположных направлениях, но в ходе моего испытания я столкнулся с неизвестными ошибками

Я попытался инициализировать две переменные turtle1 и turtle2 с помощью self, потому что я унаследовал Turtle и s

from turtle import *
class moveOpposite(Turtle):
    def __init__(self):
        self.setx=0
        self.sety=0
    def move(self):
        turtle1=self
        turtle2=self
        turtle1.forward(100)
        turtle2.forward(-100)


my_turtle=moveOpposite()
my_turtle.move()

Я не использовал self._go, но моя ошибка говорит, что я сделал так:

self._go(distance)

Я также не использовал self._position и т. Д., Но он также говорит, что я использовал и дает мне AttributeError

ende = self._position + self._orient * distance
AttributeError: 'moveOpposite' object has no attribute '_position'

1 Ответ

0 голосов
/ 30 мая 2019

Я бы не наследовал от Turtle, то есть isa , в этой ситуации, поскольку ваш объект не черепаха, а пара из них.Я бы пошел с подходом содержит вместо:

from turtle import Screen, Turtle

class Zax():  # a la Dr. Suess
    def __init__(self):
        self.east_bound = Turtle('turtle')
        self.west_bound = Turtle('turtle')
        self.west_bound.setheading(180)

    def forward(self, distance):
        self.east_bound.forward(distance)
        self.west_bound.forward(distance)

    def right(self, angle):
        self.east_bound.right(angle)
        self.west_bound.right(angle)

    def left(self, angle):
        self.east_bound.left(angle)
        self.west_bound.left(angle)

screen = Screen()

zaxen = Zax()
zaxen.forward(100)

for _ in range(4):
    zaxen.forward(20)
    zaxen.right(90)

screen.exitonclick()

enter image description here

...