_
tem 4 principais usos convencionais em Python:
- Manter o resultado da última expressão executada (/ statement) em uma sessão interativa de intérprete. Esse precedente foi estabelecido pelo intérprete CPython padrão, e outros intérpretes seguiram o exemplo
- Para pesquisa de tradução no i18n (veja a
documentação do
gettext por exemplo), como no código como:
raise forms.ValidationError(_("Please enter a correct username"))
- Como objetivo geral "descartável" nome da variável para indicar que parte do resultado função está sendo deliberadamente ignorado (Conceitualmente, ele está sendo descartado.), Como no código como:
label, has_label, _ = text.partition(':')
.
- Como parte de uma definição de função (usando um
def
ou lambda
), onde a assinatura é fixa (por exemplo, por uma API de retorno de chamada ou de classe pai), mas essa implementação de função específica não precisa de todos os parâmetros, como em códigos como:callback = lambda _: True
(Por um longo tempo, essa resposta listou apenas os três primeiros casos de uso, mas o quarto caso surgiu com bastante frequência, como observado aqui , para valer a pena listar explicitamente)
Os últimos casos de uso "variável descartável ou nome do parâmetro" podem entrar em conflito com o caso de uso da pesquisa de tradução, portanto, é necessário evitar o uso _
como variável descartável em qualquer bloco de código que também a use na tradução i18n (muitas pessoas preferem um sublinhado duplo , __
como sua variável descartável exatamente por esse motivo).