Sobes.tech
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 ყველა კლასს, რომელიც იყენებს მას.