Atrybuty instancji to zmienne lub stałe wartości przypisane do instancji. W języku Python większość danych jest obiektami, są nimi m. in. klasy i instancje. Do każdego obiektu w języku Python można dodać atrybuty.
Proszę skopiować poniższy kod. Tworzone są trzy grupy znane z poprzedniego wpisu.
class bryły: pass class graniastosłup(bryły): pass class walec(bryły): pass class stożek(bryły): pass
Kod definiuje instancje w klasach.
Zbiorniki_A = walec() Zbiorniki_B = graniastosłup() Pryzmy_FF = stożek()
Kolejna część kodu definiuje atrybuty dla klasy i instancji
bryły.atrybut_brył = ['a','b','az','hh'] print (bryły.atrybut_brył) Zbiorniki_B.stałe_zbiorników = (12,24,53,1) print (Zbiorniki_B.stałe_zbiorników) Pryzmy_FF.opisy_dla_grupy = "grupa objęta jest dozorem technicznym" print (Pryzmy_FF.opisy_dla_grupy)
Wynik kodu:
['a', 'b', 'az', 'hh'] (12, 24, 53, 1) grupa objęta jest dozorem technicznym
Jak widać atrybuty instancji oraz klas mogą mieć różne formy od łańcuchy znaków, przez listy, stałe.
Atrybuty mogą być wykorzystywane w dalszej części kodu. Wyniki wyświetlone zostały na ekranie dzięki instrukcji print.
Operacje na atrybutach
Schemat zasięgu atrybutów.
Odwoływania się do atrybutów nadrzędnych
print (Zbiorniki_B.atrybut_brył) print (graniastosłup.atrybut_brył)
Instancje mogą odwoływać się do atrybutu dla wszystkich brył zaznaczonego beżowym kolorem na schemacie.
Kasowanie atrybutów
Atrybuty mogą być również kasowane z kodu.
Poniższy kod kasuje wszystkie atrybuty instancji i klas.
Proszę wkleić ten kod, sprawdzić a następnie skasować. Główny kod wraz z atrybutami będzie jeszcze potrzebny do ćwiczeń.
del bryły.atrybut_brył del Zbiorniki_B.stałe_zbiorników del Pryzmy_FF.opisy_dla_grupy
Zasłanianie atrybutów innymi atrybutami
Proszę skopiować poniższy kod pod dotychczasowym kodem.
Zbiorniki_B.atrybut_brył = "POWAŻNA ZMIANA ATRYBUTU" print (Zbiorniki_B.atrybut_brył) print (Zbiorniki_A.atrybut_brył) del Zbiorniki_B.atrybut_brył print (Zbiorniki_B.atrybut_brył)
Atrybut o nazwie atrybut_brył dotyczył wszystkich klas. Czasowo, dla instancji Zbiorniki_B został zawieszony. Po skasowaniu zmiany atrybut_brył wrócił do starej formy dla Zbiorniki_B.
Definiowanie klasy z atrybutami, instancjami i funkcjami
Dobrym zwyczajem jest tworzyć klasy wraz z instancjami oraz funkcjami. Dobrze jest od razu dopisać atrybuty instancji i klas. To rozwiązanie jest bardziej przyjazne dla programisty czytającego kod.