Junior
O que é self em Python?
sobes.tech IA
Resposta da IA
self em Python é o primeiro argumento de um método de instância de uma classe. Representa a própria instância do objeto, através da qual o método foi chamado.
Características principais de self:
- Referência à instância: Permite aceder aos atributos e chamar outros métodos dessa instância em particular.
- Convenção de nomenclatura:
selfé um nome tradicional, mas não obrigatório. Pode usar-se qualquer outro nome, masselfé o padrão amplamente aceite que torna o código mais legível. - É passado automaticamente: Ao chamar um método de instância, Python passa automaticamente uma referência à instância chamadora como primeiro argumento (
self). Não é necessário defini-lo na chamada. - Ausente em métodos estáticos e de classe: Em métodos estáticos (
@staticmethod),selfnão está presente, pois não estão ligados a uma instância concreta. Em métodos de classe (@classmethod), o primeiro argumento é uma referência à própria classe (cls), não à instância.
Exemplo de uso:
class MyClass:
def __init__(self, value):
# Atribui o valor passado ao atributo de instância 'value'
self.value = value
def print_value(self):
# Usa 'self' para aceder ao atributo 'value' desta instância
print(f"Value is: {self.value}")
# Cria uma instância da classe
obj = MyClass(10)
# Chama o método de instância. Python passa automaticamente 'obj' como 'self'
obj.print_value()
Neste exemplo, self dentro dos métodos __init__ e print_value refere-se ao objeto obj. Sem self, não seria possível aceder ao atributo value que pertence exatamente a esta instância de MyClass.