Python для продвинутых: ООП, типизация и тестированиеОткрытые материалыclassmethod, staticmethod и обычный метод в Python

classmethod, staticmethod и обычный метод в Python

Уроки курсаclassmethod, staticmethod и обычный метод в Python

Обычный метод получает экземпляр первым аргументом — по соглашению self. Он читает и меняет состояние конкретного объекта и может обращаться к классу через type(self).

class Account:
    fee_rate = 0.02

    def __init__(self, balance: float):
        self.balance = balance

    def fee(self) -> float:
        return self.balance * self.fee_rate

Вызов account.fee() автоматически связывает account с параметром self. Если поведение зависит от данных экземпляра, это обычный метод — дополнительные декораторы не нужны.