Importante

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!

1
resposta

[Dúvida] This e self no Python:

Quais as diferenças de usar o this e self no Python? Por exemplo em um construtor.

1 resposta

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.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!