我想在新创建的 class 中创建多个海龟
I want to create mutiple turtles in newly created class
我遇到了一个问题,我必须创建一个简单的面向对象的代码来创建两只向相反方向移动的海龟,但在我的试验中我遇到了未知错误
我尝试用self
初始化两个变量turtle1
和turtle2
因为我继承了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'
我不会从 Turtle
继承,即 isa,在这种情况下,因为您的对象不是乌龟不过是一对而已。我会改用 contains 方法:
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()
我遇到了一个问题,我必须创建一个简单的面向对象的代码来创建两只向相反方向移动的海龟,但在我的试验中我遇到了未知错误
我尝试用self
初始化两个变量turtle1
和turtle2
因为我继承了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'
我不会从 Turtle
继承,即 isa,在这种情况下,因为您的对象不是乌龟不过是一对而已。我会改用 contains 方法:
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()