Junior — Middle
გაამართეთ მეტაკლასის კონცეფცია და მისი როლი Python-ში კლასების განსაზღვრაში
sobes.tech AI
პასუხი AI-სგან
Python-ში მეტაკლასი არის კლასი, რომელიც ქმნის სხვა კლასებს. მარტივად რომ ვთქვათ, კლასი არის ობიექტი, ხოლო მეტაკლასი — "კლასებისთვის კლასი".
ჩვეულებრივ, Python-ში ყველა კლასი შექმნილია type მეტაკლასის გამოყენებით. მეტაკლასი განსაზღვრავს, როგორ იქმნება კონკრეტულად კლასი, რა ატრიბუტები და მეთოდები ექნება მას.
მეტაკლასის როლი:
- კლასის შექმნის პროცესის მართვა (მაგალითად, მეთოდების ავტომატური დამატება ან ატრიბუტების შემოწმება).
- საშუალებას აძლევს შეცვალოს კლასების ქცევა მათი განსაზღვრის დროს.
მეტაკლასის გამოყენების მაგალითი:
class Meta(type):
def __new__(cls, name, bases, dct):
dct['greet'] = lambda self: f"სალამი {name}-დან!"
return super().__new__(cls, name, bases, dct)
class MyClass(metaclass=Meta):
pass
obj = MyClass()
print(obj.greet()) # გამოიტანს: სალამი {name}-დან!
აქ, მეტაკლასი დამატებს მეთოდს greet ყველა კლასს, რომელიც იყენებს მას.