Функция classmethod(function)
в Python используется для создания методов класса. Методы класса принимают в качестве первого аргумента сам класс, а не экземпляр класса. Это полезно, когда нужно работать с самим классом, а не с его конкретным экземпляром.
Содержание
Синтаксис
classmethod(function)
Параметры
function
: Функция, которую нужно преобразовать в метод класса.
Возвращаемое значение
Функция возвращает класс-метод, который можно вызывать как метод класса.
Пример использования
Рассмотрим пример создания метода класса с помощью функции classmethod
.
Пример 1: Определение метода класса
class MyClass:
class_variable = 'Hello, world!'
def __init__(self, instance_variable):
self.instance_variable = instance_variable
@classmethod
def class_method(cls):
return cls.class_variable
# Вызов метода класса
print(MyClass.class_method()) # Вывод: 'Hello, world!'
Пример 2: Использование метода класса для создания экземпляра
Методы класса часто используются как альтернативные конструкторы.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
@classmethod
def from_birth_year(cls, name, birth_year):
current_year = 2024
age = current_year - birth_year
return cls(name, age)
# Создание экземпляра с использованием метода класса
person = Person.from_birth_year('Alice', 1990)
print(person.name, person.age) # Вывод: 'Alice 34'