Sobes.tech
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, mas self é 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), self nã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.