python - 适用于多只 turtle 的功能

标签 python clone turtle-graphics

我知道这是一个非常愚蠢的问题,但我还没有找到任何答案。 我写了一个定义很长的函数。

我必须养 turtle :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()

我尝试对两只 turtle (p.scoregraphq.scoregraph)使用该函数,但它不起作用。

这可能吗,还是我必须定义两个单独的函数?

最佳答案

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 调用 turtle 方法:

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()

关于python - 适用于多只 turtle 的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41906273/

相关文章:

python - 机器学习电子邮件优先级 - Python

perl - 如何克隆 Class::Struct?

ios - 克隆 UIImage 对象时 UIImage 文件太多

c++ - 如何从指针转换为 int?

python - Turtle 模块 - 保存图像

python - 如何将 turtle 的 y 坐标提取为 float - Python 3.x

python - 安装 Python 时出现问题

python - 如何闪烁由flask_socketio发出的消息?

python - 选择离 SVM 超车道最近的 5 个数据点

javascript - 使用输入文本 Angular 克隆对象