Sobes.tech
Junior
181

Python сыныптарында қандай әдістер бар?

AI-дан жауап

sobes.tech AI

Python-да сыныптар келесі типтегі әдістерге ие болуы мүмкін:

  1. Объектілік әдістері (Instance Methods) Бірінші аргумент ретінде self қабылдайды (сыныптың мысалына сілтеме). Нақты мысалдың атрибуттарымен жұмыс істейді.

    class MyClass:
        def __init__(self, value):
            self.value = value
    
        def print_value(self):
            # Мысал атрибутымен жұмыс
            print(f"Мәні: {self.value}")
    
  2. Сынып әдістері (Class Methods) Бірінші аргумент ретінде cls қабылдайды (сыныпқа сілтеме). @classmethod декораторы арқылы жарияланады. Альтернативті конструкторлар ретінде немесе сынып атрибуттарына қол жеткізу үшін пайдаланылады.

    class MyClass:
        class_variable = "Сынып деректері"
    
        @classmethod
        def print_class_variable(cls):
            # Сынып атрибутымен жұмыс
            print(f"Сынып айнымалысы: {cls.class_variable}")
    
        @classmethod
        def from_string(cls, data_string):
            # Альтернативті конструктор
            value = int(data_string.split(":")[1])
            return cls(value)
    
  3. Статикалық әдістер (Static Methods) Ешқандай self немесе cls қабылдамайды. @staticmethod декораторы арқылы жарияланады. Мүшелік немесе сынып атрибуттарына қатынасы жоқ, байланысты функцияларды топтастыру үшін пайдаланылады.

    class MyClass:
        @staticmethod
        def helper_function(x, y):
            # Тәуелсіз функция, сыныппен концептуалды түрде байланысты
            return x + y
    
  4. Арнайы әдістер (Special Methods / Dunder Methods) Екі жақшамен (__init__, __str__, __len__) басталатын және аяқталатын аттар бар. Ішкі функциялар мен операторлар қолданылғанда сыныптың мінез-құлқын анықтау үшін пайдаланылады.

    class MyList:
        def __init__(self, items):
            self.items = items
    
        def __len__(self):
            # `len()` функциясының мінез-құлқын анықтайды
            return len(self.items)
    
        def __str__(self):
            # Объектінің жолдық көрінісін анықтайды
            return f"MyList {len(self.items)} элементпен"
    

Қысқаша кесте:

Әдіс түрі Бірінші аргумент Декоратор Қол жетімділік Әдеттегі мақсаты
Объектілік әдіс self Жоқ Мысал Нақты объект деректерімен жұмыс істеу
Сынып әдісі cls @classmethod Сынып Альтернативті конструкторлар, сынып атрибуттарына қол жеткізу
Статикалық әдіс Жоқ @staticmethod Жоқ Қосалқы функциялар, сынып немесе мысал күйіне тәуелсіз
Арнайы әдіс Әдістің түріне байланысты Жоқ Мысал/Сынып Операциялар мен ішкі функцияларды қайта анықтау