Python классы поддерживают три типа методов, каждый со своей уникальной целью и соглашением вызова.
Методы экземпляра — самый распространённый тип. Они принимают self как первый параметр, давая прямой доступ к атрибутам экземпляра и другим методам.
def greet(self):
return f"Hello, {self.name}"
Используй их когда методу нужно читать или изменять состояние конкретного объекта.
Методы класса декорируются с помощью @classmethod и принимают cls как первый параметр вместо self. Это обеспечивает доступ к самому классу, а не к какому-либо отдельному экземпляру.
@classmethod
def from_string(cls, data_string):
name, age = data_string.split(",")
return cls(name, int(age))
Обычно они используются как фабричные методы — альтернативные конструкторы, которые создают и возвращают новые экземпляры класса.
Статические методы декорируются с помощью @staticmethod и не принимают ни self, ни cls. Они не имеют доступа к состоянию экземпляра или класса.
@staticmethod
def validate_age(age):
return isinstance(age, int) and age > 0
Используй их для вспомогательных функций, которые логически связаны с классом, но не зависят от его данных.
self → доступ к экземпляруcls → доступ к классуМетоды экземпляра требуют self в качестве первого параметра для доступа и изменения состояния конкретного объекта.
Новый — ещё не проверен сообществом
Вы