Rozdział 7 · Głębokie zanurzenie w Turtle

clone() — kopiować stan

Nie "nowy żółw od podstaw", ale "dokładna kopia istniejącego" – i wtedy są całkowicie niezależne.

clone() inny sposób na zdobycie drugiego żółwia, ale fundamentalnie inne: nie "stwórz od zera", lecz "skopiuj stan istniejącego".

Kopia zaczyna się z tego samego miejsca

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()
Rezultat
Dwa segmenty wychodzące z tego samego wspólnego punktu niskiego w różnych kierunkach – jeden niebieski, drugi różowy
original i copy zaczynają się od tego samego punktu z tym samym stanem, a następnie się rozchodzą
clone_kod.py
original = turtle.Turtle()
original.color("#5B24F9")
original.penup(); original.goto(0, -100); original.pendown()
original.setheading(90)

copy = original.clone()   # Ten sam kolor, ta sama pozycja, ta sama szybkość
copy.color("#DB2777")     # zmieniać tylko kolor, aby odróżnić go na zdjęciu

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

copy.right(30)
copy.forward(160)
clone() ≠ link do tego samego żółwia
copy jest całkowicie NOWYM, niezależnym obiektem. Zaczyna się od tej samej pozycji, kursu i ustawień co original w czasie klonowania, ale dalsze zmiany u jednego żółwia nie wpływają na drugi, co już widzieliśmy w przypadku alice oraz bob.
Kiedy jest przydatny
Wyobraź sobie wzór z kilkoma identycznymi promieniami, ale obracanymi pod różnymi kątami – zamiast ustawiać każdego żółwia od zera, możesz ustawić „referencyjnego”
Praktyka: clone() i niezależne egzemplarze
Moduł turtle otwiera natywne okno Python – uruchamiane lokalnie w VS Code, PyCharm lub Jupyter
Otwórz praktykę →