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