Como usar o null no Python?
Null em Python: Entendendo o Objeto NoneType do Python
Se você tem experiência com outras linguagens de programação, como C ou Java, provavelmente já ouviu falar do conceito de null. Muitas linguagens usam isso para representar um ponteiro que não aponta para nada, para denotar quando uma variável está vazia ou para marcar parâmetros padrão que ainda não foram fornecidos. null
é frequentemente definido como 0
nessas linguagens, mas o null
em Python é diferente.
O Python usa a palavra-chave None
para definir objetos e variáveis nulas. Embora None
sirva para alguns dos mesmos propósitos que o null
em outras linguagens, ele é totalmente diferente. Como o null
em Python, None
não é definido como 0
ou qualquer outro valor. No Python, None
é um objeto e um cidadão de primeira classe!
Entendendo Null em Python
None
é o valor que uma função retorna quando não há uma instrução return
na função:
Quando você chama sem_retorno()
, não há nenhuma saída para você ver. No entanto, ao imprimir uma chamada a essa função, você verá o None
oculto que ela retorna.
Na verdade, o None
é tão frequente como um valor de retorno que o REPL do Python não imprime None
a menos que você o informe explicitamente:
O None
por si só não possui saída, mas imprimindo-o você verá None
no console.
Curiosamente, a função print()
em si não tem um valor de retorno. Se você tentar imprimir uma chamada para print()
, você verá None
:
Pode parecer estranho, mas print(print("..."))
mostra o None
que a função print()
interna retorna.
None
também é frequentemente usado como um sinal para parâmetros ausentes ou padrão. Por exemplo, None
aparece duas vezes na documentação de list.sort
:
Aqui, None
é o valor padrão para o parâmetro key
bem como uma dica de tipo para o valor de retorno.
Usando o Objeto Nulo None
do Python
Com frequência, você usará None
para inicializar uma variável que pode estar vazia ou para representar a ausência de um valor específico. Por exemplo:
Neste caso, my_variable
é uma variável que não possui um valor atribuído, ou seja, ela é nula.
Uma utilidade importante do None
é usá-lo como um parâmetro padrão em uma função. Por exemplo:
Nesta função, se nenhum argumento for fornecido, o parâmetro nome
será None
por padrão, e a saudação será impressa para um “amigo”. Caso um nome seja fornecido, a saudação será impressa para o nome especificado.
Outra maneira de usar None
é verificar se uma variável ou objeto é nulo. Por exemplo:
Neste caso, se my_variable
for None
, a mensagem “A variável é nula” será impressa. Caso contrário, a mensagem “A variável não é nula” será impressa.
Declarando Variáveis Nulas em Python
Além de atribuir None
a uma variável, você também pode declará-la como nula sem atribuir um valor inicial. Por exemplo:
Neste caso, my_variable
é declarada como uma variável de tipo int
, mas não recebeu um valor inicial. Portanto, ela é considerada nula.
Usando None como um Parâmetro Padrão
Como mencionado anteriormente, uma das principais utilidades do None
é usá-lo como um valor de parâmetro padrão em uma função. Isso permite que você defina um valor padrão para o parâmetro, caso nenhum valor seja fornecido quando a função é chamada. Por exemplo:
Neste exemplo, nome
é um parâmetro opcional na função saudacao()
. Se nenhum valor for fornecido, None
será atribuído a nome
e a saudação será exibida para um “amigo”. Caso um nome seja fornecido, a saudação será exibida para o nome especificado.
Usando None como um Valor Nulo em Python
Além de ser usado como um parâmetro padrão, você também pode usar None
como um valor nulo em Python. Isso significa que você pode atribuir None
a uma variável ou objeto para representar a ausência de um valor específico. Por exemplo:
Neste caso, se my_variable
for None
, a mensagem “A variável é nula” será impressa. Caso contrário, a mensagem “A variável não é nula” será impressa.
Decifrando o None em Tracebacks
Ao depurar um código Python, você pode se deparar com um traceback que menciona None
. Isso geralmente indica que uma variável ou objeto é None
e está gerando o erro. Por exemplo:
Neste exemplo, a função divide()
está tentando dividir 10
por 0
, o que é impossível. Isso resultará em um erro ZeroDivisionError
e o traceback indicará que o erro ocorreu em uma linha que envolve None
, que é o valor de retorno da função.
Verificando o Null em Python
Para verificar se uma variável é nula ou não em Python, você pode usar a palavra-chave is
. Por exemplo:
Neste caso, se my_variable
for None
, a mensagem “A variável é nula” será impressa. Caso contrário, a mensagem “A variável não é nula” será impressa.
Dando Uma Olhada Sob o Capô
Internamente, o Python implementa o None
como um objeto de classe NoneType
. Isso significa que você pode verificar o tipo de uma variável usando type()
e descobrir se ela é None
. Por exemplo:
Conclusão
Neste tutorial, você aprendeu sobre o None
em Python e como usá-lo. Agora você sabe que o None
é o valor que uma função retorna quando não há uma instrução return
, e que você pode usá-lo como um valor nulo ou como um parâmetro padrão em uma função. Além disso, você viu como verificar se uma variável é nula em Python e como o None
funciona internamente como um objeto da classe NoneType
. Usar corretamente o None
em Python pode ajudá-lo a escrever um código mais limpo e evitar erros relacionados a valores nulos.