Skip to content

🥕 Narzędzia introspekcji

Introspekcja pozwala na dynamiczne badanie obiektów, ich struktur oraz cech w czasie działania programu.

__class__

Atrybut ten pozwala na sprawdzenie klasy, do której należy dany obiekt.

class Zwierze:
    pass

class Pies(Zwierze):
    pass

reksio = Pies()
print(reksio.__class__)  # <class '__main__.Pies'>
print(reksio.__class__.__name__)  # Pies

__dict__

Atrybut ten to słownik, który przechowuje wszystkie atrybuty instancji obiektu. Dzięki __dict__ można dynamicznie uzyskać dostęp do atrybutów obiektu, modyfikować je, dodawać now lub iterować po nich.

class Samochod:
    def __init__(self, marka, model, rok):
        self.marka = marka
        self.model = model
        self.rok = rok

moj_samochod = Samochod("Toyota", "Corolla", 2020)
print(moj_samochod.__dict__) # {'marka': 'Toyota', 'model': 'Corolla', 'rok': 2020}