我正在学习使用这本书#34; Think Python"而且我很困惑。我遇到的问题是在TurtleWorld中创造花朵。我创建的功能在他们的要求中并不一致。首先让我发布成品,实际上有效:
from swampy.TurtleWorld import*
world=TurtleWorld()
bob=Turtle()
print bob
bob.delay=.001
def polyline(t,n,length,angle):
t=Turtle
print t
for i in range(n):
fd(bob,length)
lt(bob,angle)
def arc(t, r, angle):
t=Turtle
arc_length=2*math.pi*r*angle/360
n=int(arc_length/3)+1
step_length=arc_length/n
step_angle=float(angle)/n
polyline(t,n,step_length,step_angle)
def petal(t,r,angle):
for i in range(2):
arc(t,r,angle)
lt(t,180-angle)
def flower(t, n, r, angle):
t=Turtle
for i in range(n):
petal(bob,r,angle)
lt(bob,360/n)
flower(bob,5,77,99)
wait_for_user
关于arc
和petal
的函数定义,t
就足够了,但是在我开始时,在t
的定义中使用flower
和polyline
返回错误的未绑定方法(fd和lt)。需要turtle实例,而是获取类型实例。
在事实之后添加了t=Turtle
和print turtle
添加到一半的函数定义以尝试修复此错误。这是工作版本,我只是想知道为什么它之前没有工作。我甚至不确定为什么会这样有效,因为我主要将bob
置于t
中而不是沮丧,我实际上并不期望它能够发挥作用。
答案 0 :(得分:0)