Sublinhado duplo em Python
- Use o sublinhado de duas entrelinhas em Python
- Use o sublinhado duplo à esquerda e à direita em Python
Tanto o sublinhado (_
) quanto o sublinhado duplo (__
) têm grande importância no mundo da programação Python e são excessivamente usados por programadores para diferentes propósitos. Os sublinhados duplos são muito úteis e são frequentemente encontrados no código Python.
Neste artigo, discutiremos o significado do sublinhado duplo em Python.
Use o sublinhado de duas entrelinhas em Python
Quando o sublinhado duplo leva a um determinado identificador (__var
), o processo de mutilação de nome ocorre naquele identificador específico.
A mutilação de nomes, em termos simples, é basicamente reescrever o nome do atributo para evitar conflitos de nomenclatura com as subclasses.
Você pode usar o código a seguir para explicar o sublinhado duplo inicial em Python.
class E1:
def __init__(self):
self.bar = 11
self._baz = 23
self.__foo = 23
x = E1()
print(dir(x))
Resultado:
['_E1__foo', '__doc__', '__init__', '__module__', '_baz', 'bar']
Explicação
- No código acima, pegamos uma classe e comparamos o sublinhado único, o sublinhado duplo e os elementos normais.
- Os elementos
foo
,bar
,baz
são palavras-chave simples usadas aqui como um espaço reservado para os valores que mudam nas condições passadas para o programa ou novas informações recebidas pelo programa. - A função
dir()
é usada aqui para fornecer uma lista de atributos válidos de um determinado objeto passado como um argumento na função.
No código acima, notamos que as variáveis bar
e _baz
parecem estar inalteradas, enquanto a variável __foo
foi alterada para _E1__foo
. Este é o processo de emaranhamento de nomes que ocorre na variável e é feito para salvaguardar a variável contra ser substituída em subclasses.
Este processo de mutilação do nome das variáveis com sublinhado duplo inicial é totalmente transparente para o programador. A mutilação de nomes interage e muda tudo o que começa com um sublinhado duplo, incluindo funções.
Use o sublinhado duplo à esquerda e à direita em Python
Quando uma variável é circundada por sublinhado duplo nos lados anterior e posterior, o processo de mutilação de nome não é aplicado a ela.
As variáveis agrupadas pelo sublinhado duplo como prefixo e pós-fixados são ignoradas pelo interpretador Python.
Você pode usar o código a seguir para explicar o sublinhado duplo à esquerda e à direita no Python.
class A:
def __init__(self):
self.__foo__ = 10
print(A().__foo__)
Resultado:
10
No código acima, a variável foo
com um sublinhado duplo como prefixo e posfixo é ignorada pelo interpretador e o nome mutilado não ocorre. O valor desta função é retornado como saída, o que prova que a variável existe na lista de atributos do objeto.
Alguns nomes exclusivos, como init
ou call
que contém o sublinhado duplo inicial e final, são reservados na linguagem Python para uso especial.
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
LinkedIn