X Tutup
Skip to content

Latest commit

 

History

History
63 lines (47 loc) · 3.23 KB

File metadata and controls

63 lines (47 loc) · 3.23 KB
title Функция classmethod() в Python - Шпаргалка по Python
description Преобразует метод в классовый метод. Классовый метод получает класс в качестве неявного первого аргумента, подобно тому, как метод экземпляра получает экземпляр.
Встроенная функция Python classmethod() Из документации Python 3 Преобразует метод в классовый метод. Классовый метод получает класс в качестве неявного первого аргумента, точно так же, как метод экземпляра получает экземпляр.

Introduction

classmethod — это метод, привязанный к классу, а не к экземпляру класса. Он принимает сам класс в качестве первого аргумента, условно называемого cls. Это контрастирует с обычным методом экземпляра, который принимает экземпляр в качестве первого аргумента (self).

Они часто используются для фабричных методов, которые создают экземпляры класса определенным образом.

Example

Вот распространенный сценарий использования: создание фабричного метода, который может создавать экземпляр класса из другого формата данных, например, из словаря.

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    @classmethod
    def from_dict(cls, data):
        # Это фабричный метод, который создает экземпляр Person из словаря
        return cls(data['name'], data['age'])

    def display(self):
        print(f"Name: {self.name}, Age: {self.age}")

# Данные для нового человека
person_data = {'name': 'John', 'age': 30}

# Создание экземпляра Person с использованием классового метода
p = Person.from_dict(person_data)

p.display()
Name: John, Age: 30

Relevant links

  • Cheatsheet: Основы ООП
  • Cheatsheet: Декораторы
  • Cheatsheet: Функции
  • staticmethod()
  • property()
  • object()
X Tutup