this (programação de computadores)
this, self e Me são palavras-chave usadas em algumas linguagens de programação de computador para se referir ao objeto, classe ou outra entidade da qual o código atualmente em execução faz parte. A entidade referida por essas palavras-chave depende, portanto, do contexto de execução (por exemplo, qual objeto está tendo seu método chamado). Diferentes linguagens de programação usam essas palavras-chave de maneiras, ligeiramente, diferentes. Em linguagens onde uma palavra-chave como "this" é obrigatória, a palavra-chave é a única forma de acessar dados e métodos armazenados no objeto atual. Onde for opcional, eles podem eliminar a ambiguidade de variáveis e funções com o mesmo nome.
Implementações
editarPowerShell
editarNo PowerShell, a variável automática especial $_
contém o objeto atual no objeto de pipeline. Você pode usar essa variável em comandos que executam uma ação em cada objeto ou em objetos selecionados em um pipeline.[1]
"um", "dois", "três" | % { write $_ }
Da mesma forma, começando com PowerShell 5.0, que adiciona uma sintaxe formal para definir classes e outros tipos definidos pelo usuário,[2] a variável $this
descreve a instância atual do objeto.
Python
editarEm Python, não existe uma palavra-chave para this
. Quando uma função membro é chamada em um objeto, ele chama a função membro com o mesmo nome no objeto de classe do objeto, com o objeto automaticamente vinculado ao primeiro argumento da função. Assim, o primeiro parâmetro obrigatório dos métodos de instância serve como this
. Este parâmetro é, convencionalmente, denominado self
, mas pode ser denominado qualquer coisa.
Desta forma, o parâmetro self
é usado para representar a instância da classe. Com ele você pode acessar os atributos e métodos da classe em python, pois ele vincula os atributos aos argumentos fornecidos. Em Python, temos métodos que fazem com que a instância seja passada automaticamente, mas não recebida automaticamente.[3]
Exemplo:
class automovel():
# método init ou construtor
def __init__(self, carro, cor):
self.carro = carro
self.cor = cor
def exibir(self):
print("O carro é", self.carro)
print("Sua cor é", self.cor)
fusca = automovel("fusca", "amarelo")
gol = automovel("gol", "azul")
fusca.exibir()
gol.exibir()
Em métodos de classe (criados com o decorador classmethod
), o primeiro argumento se refere ao próprio objeto de classe e é, convencionalmente, chamado de cls
; estes são usados principalmente para construtores herdáveis,[4] onde o uso da classe como um parâmetro permite subclassificar o construtor. Em métodos estáticos (criados com o decorador staticmethod
), não existe primeiro argumento especial.
Referências
- ↑ msdn. «PowerShell: About Automatic Variables». docs.microsoft.com (em inglês). Consultado em 22 de março de 2018
- ↑ msdn. «about_Classes». docs.microsoft.com (em inglês). Consultado em 17 de dezembro de 2018
- ↑ «What is the use of self in Python?». edureka!. 7 de maio de 2020. Consultado em 28 de agosto de 2020
- ↑ Unifying types and classes in Python 2.2, Guido van Rossum, "Overriding the __new__ method"