Junior — Middle
Explique as diferenças entre self e cls no contexto dos métodos de classe
sobes.tech IA
Resposta da IA
Em Python, self e cls são convenções para o primeiro parâmetro dos métodos, mas eles têm propósitos diferentes:
selfé uma referência a uma instância específica da classe. É usado em métodos de instância normais para acessar atributos e métodos desse objeto.clsé uma referência à própria classe, não à sua instância. É usado em métodos de classe (marcados com o decorador@classmethod) para trabalhar com a classe como um todo, por exemplo, criar novas instâncias ou modificar propriedades da classe.
Exemplo:
class MyClass:
class_var = 0
def __init__(self, value):
self.instance_var = value
def instance_method(self):
print(f'Variável de instância: {self.instance_var}')
@classmethod
def class_method(cls):
print(f'Variável de classe: {cls.class_var}')
obj = MyClass(10)
obj.instance_method() # chama método de instância
MyClass.class_method() # chama método de classe