1
resposta

[Dúvida] Onde esta sendo definido o Self ?

Boa tarde,

Havia entendi que o Self é definido quando usamos a função construtura init_(self) no inicio de uma classe. Porém a resposta correta desse exercicio me surpreendeu posto que não há o uso da função construtora, mas mesmo assim há o uso do self.

class Menu: catalogo = {}

def adicionar_item(self, item, ingredientes):
    self.catalogo[item] = ingredientes

@staticmethod
def ingredientes(item):
    return Menu.catalogo[item]
    

Nesse caso, onde o self esta sendo definido?

1 resposta

Oi, Leo! Tudo bem?

Na programação orientada a objetos em Python, o termo self é como um apelido especial que usamos para nos referirmos à própria instância (ou exemplar) da classe em que estamos trabalhando. É como se fosse o nome próprio de um objeto, o que nos permite acessar as informações e as características desse objeto, que são armazenadas nas variáveis da classe. Embora seja possível dar a esse apelido qualquer nome, é uma convenção entre os programadores chamá-lo de self. É como uma maneira padrão de falar sobre si mesmo quando se escreve código em Python.

No código compartilhado, self é usado como o primeiro parâmetro do método adicionar_item, o que significa que adicionar_item é um método de instância e, portanto, tem acesso aos atributos e métodos da instância.

Podemos dizer também que o self é usado para acessar o dicionário catalogo que pertence à instância atual da classe Menu. Mesmo que catalogo seja definido no nível da classe (e não no construtor __init__), ainda é acessível através de self porque self refere-se à instância atual.

Dessa forma, em resumo, quando usamos um método de instância, como o método adicionar_item, o Python automaticamente define a variável self para representar a instância atual, ou seja, o objeto específico em que estamos trabalhando.

Espero ter ajudado! Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓