Ваш dragging()
код стал настолько сложным, что я не могу понять, что вы хотите по сравнению с тем, что вы делаете . Я собираюсь начать с совершенно другого, более простого подхода:
from turtle import Screen, Turtle
from functools import partial
def dragging(tortoise, x, y):
for turtle in screen.turtles(): # disable event handlers inside handler
turtle.ondrag(None)
tortoise.goto(x, y)
for turtle in screen.turtles(): # reenable event handers on the way out
turtle.ondrag(partial(dragging, turtle))
def main():
turtle_1.ondrag(partial(dragging, turtle_1))
turtle_2.ondrag(partial(dragging, turtle_2))
screen.mainloop()
screen = Screen()
turtle_1 = Turtle('turtle')
turtle_1.shape('circle')
turtle_1.speed('fastest')
turtle_1.penup()
turtle_1.color('green')
turtle_1.goto(-100, 100)
turtle_2 = turtle_1.clone() # turtle_2 is a lot like turtle_1
turtle_2.color('blue')
turtle_2.goto(100, -100)
main()
Дает ли это вам контроль и желаемое поведение? Если нет, дайте нам знать в своем вопросе, что именно вы хотите, а не только то, что не делает код.