Junior — Middle
Wyjaśnij koncepcję metaklasy i jej rolę w definiowaniu klas w Pythonie
sobes.tech AI
Odpowiedź od AI
W Pythonie metaklasa to klasa, która tworzy inne klasy. Mówiąc prościej, klasa to obiekt, a metaklasa to "klasa dla klas".
Domyślnie, wszystkie klasy w Pythonie są tworzone za pomocą metaklasy type. Metaklasa określa, jak dokładnie tworzona jest klasa, jakie atrybuty i metody będzie miała.
Rola metaklasy:
- Zarządzać procesem tworzenia klasy (np. automatycznie dodawać metody lub sprawdzać atrybuty).
- Pozwalać na modyfikację zachowania klas na etapie ich definiowania.
Przykład użycia metaklasy:
class Meta(type):
def __new__(cls, name, bases, dct):
dct['greet'] = lambda self: f"Cześć z {name}!"
return super().__new__(cls, name, bases, dct)
class MyClass(metaclass=Meta):
pass
obj = MyClass()
print(obj.greet()) # Wypisze: Cześć z {name}!
Tutaj metaklasa dodaje metodę greet do wszystkich klas, które jej używają.