Rozdział 7 · Głębokie zanurzenie w Turtle

Wiele żółwi

Jeden ekran może pomieścić dowolną liczbę żółwi, a każdy będzie miał swój własny, całkowicie niezależny stan.

Stworzyliśmy jednego żółwia do całego scenariusza. Ale nic nie stoi na przeszkodzie, by stworzyć kilka naraz — Każdy będzie miał własny, całkowicie niezależny państwo.

Jeden ekran, różne żółwie

dve_cherepashki.py
import turtle

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

alice = turtle.Turtle()
alice.color("#5B24F9")
alice.shape("turtle")
alice.penup()
alice.goto(-100, -80)
alice.pendown()
alice.setheading(70)
alice.forward(140)

bob = turtle.Turtle()
bob.color("#DB2777")
bob.shape("turtle")
bob.penup()
bob.goto(100, -80)
bob.pendown()
bob.setheading(110)
bob.forward(140)

screen.exitonclick()
Rezultat
Dwa segmenty o różnych kolorach z różnych punktów – fioletowy z Alice i różowy z Bob
alice i bob — dwa niezależne obiekty Turtle na jednym ekranie
dve_cherepashki_kod.py
alice = turtle.Turtle()
alice.color("#5B24F9")
alice.penup(); alice.goto(-100, -80); alice.pendown()
alice.setheading(70)
alice.forward(140)

bob = turtle.Turtle()
bob.color("#DB2777")
bob.penup(); bob.goto(100, -80); bob.pendown()
bob.setheading(110)
bob.forward(140)
SCREEN
├── alice
│    ├ position
│    ├ heading
│    └ color

└── bob
     ├ position
     ├ heading
     └ color
Twój własny stan oznacza niezależne zachowanie
Zmiana kursu lub koloru alice NIE ma wpływu bob istnieją na tym samym ekranie, ale żyją całkowicie osobno. To jest istota tego, co turtle.Turtle() nie jest tylko funkcją, lecz fabryką niezależnych obiektów.
sravnenie_sostoyaniya.py
print(alice.position(), alice.heading())
print(bob.position(), bob.heading())
Nazwa tego jest przed nami
Później, w rozdziale o programowaniu obiektowym, nadamy temu zjawisku formalną nazwę i przeanalizujemy je znacznie głębiej. Na razie wystarczy samo obserwacje: każdy Turtle() jest odrębnym, niezależnym obiektem o własnym stanie.
Praktyka: Wiele żółwi
Moduł turtle otwiera natywne okno Python – uruchamiane lokalnie w VS Code, PyCharm lub Jupyter
Praktyka kursuje lokalnie
Otwórz praktykę →