Quais as diferenças de usar o this e self no Python? Por exemplo em um construtor.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Quais as diferenças de usar o this e self no Python? Por exemplo em um construtor.
Oi, Maicon, como vai?
A principal diferença é que this e self pertencem a linguagens diferentes, mas cumprem uma função parecida: representar a própria instância do objeto. No Python, usamos self para acessar os atributos e métodos da instância. Já em linguagens como JavaScript, usamos this para esse mesmo propósito, embora o comportamento de this tenha algumas particularidades próprias da linguagem.
No construtor em Python, por exemplo, temos def __init__(self, nome, preco):. Esse self representa o objeto que está sendo criado. Por isso, quando fazemos self.nome = nome, estamos dizendo que o valor recebido pelo parâmetro nome será armazenado no atributo nome daquela instância. O self precisa aparecer explicitamente na definição dos métodos de instância. Em JavaScript, seria algo como constructor(nome, preco) { this.nome = nome; this.preco = preco; }, sem precisar declarar this como parâmetro.
Uma diferença importante é que self no Python é uma convenção explícita para representar a instância, enquanto this no JavaScript é uma palavra-chave cujo valor depende do contexto em que a função é executada.
Continue participando e, caso surjam outras dúvidas, o fórum está à disposição.