python - 改变 turtle 1's position changes turtle 2' 的位置

标签 python turtle-graphics

def func():
    print("T POSITION: ", t.pos()) # prints 100, 100
    t2.pencolor("black")
    t2.setpos(0,0)
    print("T POSITION: ", t.pos()) # Now, prints 0, 0
    print("T2 POISTION: ", t2.pos())

两者皆有。 t.pos()t2.pos() 设置为 (0,0) ,即使我声明为全局变量 t1 和t2 分别。

t= turtle.getturtle()
t.setpos(100,100)
t2 = turtle.getturtle().

如果我只想将t2的位置更改为0,0,我该如何完成此操作?

最佳答案

您需要copy.copy t2:

import turtle,copy
t= turtle.getturtle()
t.setpos(100,100)
t2 = copy.copy(turtle.getturtle())
def func():
    print("T POSITION: ", t.pos())
    t2.pencolor("black")
    t2.setpos(0,0)
    print("T POSITION: ", t.pos())
    print("T2 POISTION: ", t2.pos())
func()

现在你得到的结果是:

T POSITION:  (100.00,100.00)
T POSITION:  (100.00,100.00)
T2 POISTION:  (0.00,0.00)

否则:

>>> t==t2
True
>>> t is t2
True
>>> id(t)
333763277936
>>> id(t2)
333763277936
>>> id(t) == id(t2)
True
>>> 

它们是相同的对象!完全可以!

关于python - 改变 turtle 1's position changes turtle 2' 的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56106379/

相关文章:

python 从二进制文件中读取 16 个字节长的 double

python - 如何确定 python turtle 窗口何时调整大小?

python - 尝试从如何像计算机科学家一样思考和使用 Turtle 模块学习 Python 3 中找出练习,收到 NameError

python - 条形或标签之间的间距

python - 如何使用列表理解构建以下字典?

python - pandas 从单列中删除重复项,同时保持剩余行完整

python - 使用递归绘制雪花

python - 您可以将一个 for 循环嵌套在另一个 for 循环中,并且它们具有相同的循环变量吗?

python - turtle 图形 turtle 放慢速度

python - 选择字符串 python 中得分最高的 block