Глава 7 · Глубокое погружение в Turtle

clone() — копируем состояние

Не «новая черепашка с нуля», а «точная копия существующей» — а дальше они полностью независимы.

clone() — ещё один способ получить вторую черепашку, но принципиально другой: не «создать с нуля», а «скопировать состояние существующей».

Копия стартует с того же места

clone.py
import turtle

screen = turtle.Screen()
screen.setup(width=420, height=320)

original = turtle.Turtle()
original.color("#5B24F9")
original.penup()
original.goto(0, -100)
original.setheading(90)

copy = original.clone()
copy.color("#DB2777")

original.pendown()
original.left(30)
original.forward(160)

copy.pendown()
copy.right(30)
copy.forward(160)

screen.exitonclick()
Результат выполнения
Два отрезка, выходящих из одной общей нижней точки в разные стороны — один синий, один розовый
original и copy стартуют из одной точки с одинаковым состоянием, затем расходятся
clone_kod.py
original = turtle.Turtle()
original.color("#5B24F9")
original.penup(); original.goto(0, -100); original.pendown()
original.setheading(90)

copy = original.clone()   # тот же цвет, та же позиция, тот же курс
copy.color("#DB2777")     # меняем только цвет — чтобы отличить на рисунке

original.left(30)
original.forward(160)

copy.right(30)
copy.forward(160)
clone() ≠ ссылка на ту же черепашку
copy — полностью НОВЫЙ, независимый объект. Он начинает с теми же позицией, курсом и настройками, что и original в момент клонирования — но дальнейшие изменения одной черепашки никак не затрагивают другую, как мы уже видели с alice и bob.
Когда это полезно
Представьте узор с несколькими одинаковыми лучами, но повёрнутыми под разными углами — вместо того, чтобы настраивать каждую черепашку с нуля, можно один раз настроить "эталонную" черепашку и клонировать её сколько угодно раз.
Практика: clone() и независимые копии
Модуль turtle открывает нативное окно Python — выполните локально в VS Code, PyCharm или Jupyter
Открыть практику →