我知道这是一个非常愚蠢的问题,但我没有找到任何答案。 我写了一个定义相当长的函数。
我需要海龟:int hiWord = unchecked((short)((long)m.LParam >> 16));
if (hiWord != 0)
{
// do something
}
和p = turtle.Turtle()
。
q = p.clone()
我尝试将这个函数用于两只海龟(def scoregraph():
start = pos()
color("silver")
pd()
rt(90)
fd(20)
lt(90)
fd(200)
rt(90)
fd(20)
rt(90)
fd(200)
rt(90)
fd(60)
rt(90)
fd(200)
lt(90)
fd(20)
lt(90)
fd(200)
rt(90)
fd(20)
color("black")
fd(6)
rt(90)
fd(200)
rt(90)
fd(6)
rt(90)
fd(200)
lt(90)
fd(60)
lt(90)
fd(200)
rt(90)
fd(60)
rt(90)
fd(200)
rt(90)
fd(60)
bk(66)
rt(90)
fd(200)
lt(90)
fd(126)
pu()
goto(start)
rt(90)
pd()
和p.scoregraph
),但它不起作用。
是否可以,或者我是否必须定义两个单独的功能?
答案 0 :(得分:4)
将Turtle
对象传递给scoregraph()
函数:
def scoregraph(t):
start = t.pos()
t.color("silver")
t.pd()
t.rt(90)
t.fd(20)
# etc
然后这样打电话:
p = turtle.Turtle()
q = p.clone()
scoregraph(p)
scoregraph(q)
或者,如果您想要更加面向对象的样式,请从Turtle
派生自己的类并提供scoregraph()
方法。使用self
调用乌龟方法:
class MyTurtle(turtle.Turtle):
def scoregraph(self):
self.start = self.pos()
self.color("silver")
self.pd()
self.rt(90)
self.fd(20)
# etc
p = MyTurtle()
q = p.clone()
p.scoregraph()
q.scoregraph()