Функция classmethod( ) в Python

Обложка к статье "Функция classmethod( ) в Python"

Функция 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'

Оцените статью
( Пока оценок нет )
Обучение Python
Добавить комментарий