jesteś tutaj�
313
Trochę klasy
Obiekty współdzielą zachowanie, ale nie stan
Gdy tworzysz obiekty klasy, każdy z nich współdzieli zakodowane zachowania klasy (czyli metody,
które zostały w niej zdefiniowane), ale posiada własną kopię wszystkich stanów (czyli atrybutów),
tak jak zostało to pokazane poniżej.
>>> c = CountFromBy()
>>> c
0
>>> c.increase()
>>> c.increase()
>>> c.increase()
>>> c
3
Utwórz kolejny nowy obiekt i przypisz go
do zmiennej o nazwie „c”.
Wartość
początkowa
wynosi 0.
Wywołaj metodę increase, aby
zwiększyć wartość licznika za
każdym razem o 1.
Po trzech wywołaniach metody increase wartość
obiektu wynosi 3.
Metody (współdzielone
przez wszystkie obiekty
utworzone za pomocą tej
samej klasy)
Atrybuty
(NIEwspółdzielone
z innymi obiektami
utworzonymi za pomocą
tej samej klasy)
Zachowanie
Stan
Każdy obiekt utworzony na
podstawie tej samej klasy
ma dostęp do jej metod
(współdzielonego kodu).
Jednak każdy z nich posiada
własną kopię atrybutów.
Obiekt
Ta różnica nabierze sensu, gdy rozwiniemy nieco nasz przykład z klasą
CountFromBy
.
Definiowanie tego, czego oczekujemy od klasy CountFromBy
Zdefiniujmy teraz, co klasa
CountFromBy
ma tak naprawdę według nas robić (ponieważ pusta
klasa rzadko się do czegoś przydaje).
Sprawmy, aby klasa
CountFromBy
reprezentowała licznik, który można inkrementować.
Standardowo licznik ten będzie zaczynał zliczanie od wartości 0 i będzie ją zwiększał o 1.
Umożliwimy również określenie innej wartości początkowej lub wartości, o którą ma się
zwiększać licznik. Oznacza to, że będziesz na przykład mógł utworzyć obiekt klasy
CountFromBy
,
który zaczyna zliczanie od wartości 100 i zwiększa swoją wartość o 10.
Sprawdźmy, co nasza klasa
CountFromBy
będzie w stanie nam zapewnić (gdy opracujemy już jej
kod). Dzięki zrozumieniu sposobu, w jaki klasa ta będzie używana, łatwiej będzie Ci zrozumieć
jej kod, gdy będziemy go pisać. W naszym pierwszym przykładzie skorzystamy ze standardowych
wartości używanych przez klasę: licznik zacznie pracę od wartości 0 i będzie zwiększał swoją
wartość o 1, gdy zostanie o to poproszony za pomocą wywołania metody
increase
. Nowo
utworzony obiekt zostaje tu przypisany do nowej zmiennej, której nadaliśmy nazwę
c
.
Zwróć uwagę,
że ta nowa klasa
CountFromBy
jeszcze nie istnieje.
Utworzysz
ją jednak już
wkrótce.
Get Python Rusz głową! Wydanie II now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.