| title | Função Embutida classmethod() em Python - Guia Rápido de Python |
|---|---|
| description | Transforma um método em um método de classe. Um método de classe recebe a classe como primeiro argumento implícito, assim como um método de instância recebe a instância. |
Um classmethod é um método que está vinculado à classe e não à instância da classe. Ele recebe a própria classe como seu primeiro argumento, convencionalmente nomeado cls. Isso contrasta com um método de instância regular, que recebe a instância como seu primeiro argumento (self).
Eles são frequentemente usados para métodos de fábrica que criam instâncias da classe de uma maneira específica.
Aqui está um caso de uso comum: criar um método de fábrica que pode instanciar a classe a partir de um formato de dados diferente, como um dicionário.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
@classmethod
def from_dict(cls, data):
# Este é um método de fábrica que cria uma instância de Person a partir de um dicionário
return cls(data['name'], data['age'])
def display(self):
print(f"Name: {self.name}, Age: {self.age}")
# Dados para uma nova pessoa
person_data = {'name': 'John', 'age': 30}
# Cria uma instância de Person usando o método de classe
p = Person.from_dict(person_data)
p.display()Name: John, Age: 30
- Cheatsheet: Noções Básicas de OOP
- Cheatsheet: Decorators
- Cheatsheet: Funções
- staticmethod()
- property()
- object()