Zanurkuj w Pythonie/Tworzenie instancji klasy: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Linia 14:
 
# Utworzyliśmy instancję klasy FileInfo (zdefiniowaną w module <tt>fileinfo</tt>) i przypisaliśmy właśnie utworzony obiekt do zmiennej <tt>f</tt>. Użyliśmy jednego parametru <tt>/music/_singles/kairo.mp3</tt>, który będzie odpowiadał za argument <tt>filename</tt> w metodzie <tt>__init__</tt> klasy FileInfo.
# Każda instancja pewnej klasy ma wbudowany atrybut <tt>__class__</tt>, który jest klasą danego obiektu. (Dodajmy, że ta reprezentacja dołącza fizyczny adres instancji na moim komputerze, na twoim reprezentacja będzie się różniła) Programiści Javy mogą być zaznajnajomienizaznajomieni z klasą <tt>Class</tt>, która posiada metody takie jak <tt>getName</tt> czy <tt>getSuperclass</tt>, aby pobrać metadane o pewnym obiekcie. W Pythonie, dziecko metadadanych jest dostępne bezpośrednio z obiektu wykorzystując atrybuty takie jak <tt>__class__</tt>, <tt>__name__</tt>, czy <tt>__bases__</tt>.
# Możesz pobrać notkę dokumentacyjną w podobny sposób jak funkcję czy moduł. Wszystkie instancje klasy mają taką samą informację.
# Pamiętamy, że metoda <tt>__init__</tt> przypisuje argument <tt>filename</tt> do self["name"]? W tym miejscu mamy wynik. Argumenty podawane podczas tworzenia instancji pewnej klasy zostają wysyłane do metody <tt>__init__</tt> (poza referencją do obiektu (argument, który nazwaliśmy <tt>self</tt>), Python zrobił to za nas).
Linia 25:
 
Jeśli tworzenie nowej instancji jest proste, to usuwanie jej jest jeszcze prostsze. W ogólności nie musimy wyraźnie zwalniać instancji klasy, ponieważ Python robi to automatycznie, gdy wychodzą one poza swój zasięg. W Pythonie rzadko występują wycieki pamięci.
'''Przykład 5.8. Próba zaimplemtowaniazaimplemetowania wycieku pamięci'''
 
>>> def leakmem():