Como retornar uma função em Python
O Statement do Return em Python: Uso e Melhores Práticas
O statement return
em Python é um componente chave das funções e métodos. Você pode usar o statement return
para fazer com que suas funções enviem objetos Python de volta para o código que a chamou. Esses objetos são conhecidos como valor de retorno da função. Você pode usá-los para realizar outras computações em seus programas.
Usar o statement return
de forma eficaz é uma habilidade fundamental se você deseja codificar funções personalizadas que sejam Pythonicas e robustas.
Neste tutorial, você aprenderá:
- Como usar o statement
return
em Python em suas funções - Como retornar valores únicos ou múltiplos de suas funções
- Quais são as melhores práticas a se observar ao usar o statement
return
Com esse conhecimento, você será capaz de escrever funções mais legíveis, manuteníveis e concisas em Python. Se você é totalmente novo em funções Python, pode dar uma olhada em Definindo sua Própria Função em Python antes de mergulhar neste tutorial.
Bônus Grátis: 5 Pensamentos Sobre Domínio do Python, um curso gratuito para desenvolvedores Python que mostra o caminho e a mentalidade necessários para levar suas habilidades em Python para o próximo nível.
Faça o Quiz: Teste seus conhecimentos com nosso quiz interativo “O Statement do Return em Python”. Ao concluir, você receberá uma pontuação para acompanhar seu progresso de aprendizado ao longo do tempo:
Começando com Funções em Python
A maioria das linguagens de programação permite atribuir um nome a um bloco de código que executa uma computação específica. Esses blocos de código nomeados podem ser reutilizados rapidamente porque você pode usar seu nome para chamá-los de diferentes lugares em seu código.
Os programadores chamam esses blocos de código nomeados de sub-rotinas, rotinas, procedimentos ou funções. Eles são uma parte essencial da programação estruturada e foram projetados para reduzir a duplicação de código e facilitar a reutilização e manutenção.
Em Python, você pode definir suas próprias funções usando a palavra-chave def
. Veja um exemplo simples:
Neste exemplo, saudacao()
é uma função personalizada que recebe um nome como argumento e retorna uma mensagem personalizada de saudação contendo o nome fornecido. O código a seguir chama essa função e exibe a mensagem de saudação na tela.
No Python, as funções são objetos de primeira classe, o que significa que elas podem ser atribuídas a variáveis, passadas como argumentos para outras funções e retornadas como valores de outras funções. Isso torna o Python uma linguagem muito flexível e poderosa para lidar com funções.
Entendendo o Statement de Return em Python
O statement return
é fundamental para entender como as funções retornam valores em Python. Ele é usado para especificar explicitamente o valor que uma função deve retornar para o código que a chamou.
Existem dois tipos principais de statements de retorno em Python: retorno explícito e retorno implícito.
Retorno Explícito
Um retorno explícito ocorre quando você usa o statement return
seguido pelo valor ou expressão que deseja retornar.
Aqui está um exemplo de uma função que retorna o dobro de um número:
Neste exemplo, a função dobrar_numero()
recebe um número como argumento, multiplica-o por 2 e retorna o resultado. Em seguida, o número 5 é passado para essa função, e o valor retornado (no caso, 10) é atribuído à variável dobro
. Esse valor é impresso na tela.
Retorno Implícito
Um retorno implícito ocorre quando você não usa explicitamente o statement de retorno return
. Em vez disso, o valor de retorno é inferido pelo próprio Python com base no resultado da última expressão ou statement executado na função.
Aqui está um exemplo de uma função que retorna a soma de dois números:
Neste exemplo, a função somar_numeros()
recebe dois números como argumentos, calcula sua soma e armazena o resultado na variável resultado
. No entanto, não há statement return
explícito no final da função. Apesar disso, o resultado da soma é implicitamente retornado porque é a última expressão executada na função. O valor dessa expressão é atribuído à variável soma
e, em seguida, impresso na tela.
Retornando vs Imprimindo
Ao trabalhar com funções, é importante entender a diferença entre retornar um valor e simplesmente imprimir um valor na tela.
Quando uma função retorna um valor, esse valor pode ser armazenado em uma variável ou usado em expressões e cálculos posteriores. Ele pode ser passado como argumento para outras funções e ter seu tipo e estado verificados.
Por outro lado, quando você imprime um valor na tela usando a função print()
, esse valor será exibido no console, mas você não poderá usá-lo posteriormente no seu código. A função print()
é apenas para exibição, e todo valor que você passar para ela será convertido em uma sequência de caracteres e exibido na tela.
Retornando Múltiplos Valores
Em Python, é possível retornar não apenas um, mas vários valores de uma função. Isso é conhecido como retorno de múltiplos valores e permite que você retorne um conjunto de valores relacionados como uma única entidade.
Para retornar múltiplos valores, você pode simplesmente separar os valores com vírgulas no statement return
. Por exemplo:
Neste exemplo, a função dividir_numero()
recebe dois números como argumentos, calcula o resultado da divisão e o resto da divisão desses números e retorna ambos os valores. Em seguida, esse retorno é desempacotado nas variáveis quociente
e resto
, respectivamente, e esses valores são impressos na tela.
Usando o Statement de Return em Python: Melhores Práticas
Ao usar o statement return
em suas funções Python, é importante seguir algumas melhores práticas para tornar seu código mais legível, manutenível e eficiente. Aqui estão algumas dicas úteis:
Retornando None Explicitamente
O valor None
em Python representa a ausência de um valor válido. Em algumas situações, pode ser útil retornar None
explicitamente para indicar que algo deu errado ou que não há resultado válido a ser retornado.
Lembrando o Valor de Retorno
Sempre que você chamar uma função que retorna um valor, lembre-se de armazenar esse valor em uma variável para uso posterior. Esse padrão torna seu código mais legível e evita a perda do valor retornado.
Evitando Expressões Complexas
Ao usar o statement return
, é recomendável evitar expressões complexas que possam obscurecer o código e torná-lo difícil de ler e entender. Se uma expressão se tornar muito longa ou complexa, é uma boa prática quebrá-la em várias linhas ou criar variáveis intermediárias para tornar o código mais claro.
Retornando Valores vs Modificando Variáveis Globais
Em algumas situações, pode ser tentador modificar variáveis globais dentro de uma função em vez de retornar um valor. No entanto, isso pode tornar seu código mais difícil de entender e depurar, especialmente em projetos maiores. É uma boa prática retornar valores explicitamente em vez de modificar variáveis globais sempre que possível.
Usando return com Condicionais
O statement return
pode ser usado com condicionais para retornar diferentes valores dependendo das condições especificadas. Isso permite que você escreva funções flexíveis que retornam valores diferentes em diferentes situações.
Retornando True ou False
Em Python, True
e False
são os valores utilizados para representar verdadeiro ou falso, respectivamente. Você pode usar o statement return
para retornar diretamente valores booleanos como resultado de uma função. Isso é especialmente útil em funções que verificam condições especificas e retornam um resultado booleano com base nessas verificações.
Loops com Short-Circuiting
Em alguns cenários, você pode usar o statement return
dentro de loops para interrompê-los antecipadamente se determinadas condições forem atendidas. Essa técnica é conhecida como short-circuiting loops e pode ser útil quando você deseja interromper uma iteração antes que ela seja concluída.
Reconhecendo Código Morto
Ao usar o statement return
, é importante estar atento a qualquer trecho de código subsequente ao statement de retorno que não será mais executado. Esse código é chamado de “código morto” e geralmente é um sinal de desperdício e má organização do código. Tome cuidado para remover qualquer código morto em suas funções.
Retornando Múltiplos Objetos Nomeados
Em vez de retornar vários valores separados por vírgulas, você também pode retornar um dicionário ou uma tupla nomeada contendo vários objetos nomeados relacionados. Isso torna o valor de retorno mais descritivo e facilita o acesso aos objetos usando seus nomes.
Retornando Funções: Closures
Uma das características avançadas do Python é sua capacidade de retornar funções de dentro de outras funções. Isso é conhecido como closures e é útil quando você deseja criar funções que encapsulam algum estado ou contexto.
Passando e Retornando Funções: Decoradores
Outra técnica avançada é passar funções como argumentos para outras funções e retorná-las como valor de retorno. Isso é conhecido como decoradores e é usado para estender o comportamento de funções existentes sem modificá-las diretamente.
Retornando Objetos Definidos pelo Usuário: O Padrão Factory
Em Python, você pode retornar qualquer objeto de uma função, incluindo objetos definidos pelo usuário. Isso permite que você crie funções que atuam como fábricas de objetos, criando instâncias de classes ou outros objetos complexos.
Usando return em blocos try…finally
Em algumas situações, você pode querer usar o statement return
dentro de um bloco try
no qual também há um bloco finally
. Nesse caso, o bloco finally
será executado antes que a função retorne, permitindo que você realize livremente ações de limpeza ou finalização.
Usando return em Funções Geradoras
Em Python, você também pode usar o statement return
em funções geradoras para encerrar prematuramente a iteração e retornar um valor final. Isso pode ser útil quando você precisa parar a geração de valores com base em certas condições ou eventos.
Conclusão
O statement return
é uma parte fundamental da criação de funções personalizadas eficazes em Python. Ao usar o return
de forma adequada e seguir as melhores práticas, você poderá escrever funções Python mais legíveis, concisas e robustas.
Esperamos que este tutorial tenha sido útil para você entender o uso e as melhores práticas do statement return
em Python. Agora você está pronto para aplicar esse conhecimento em seus próprios projetos e criar funções poderosas.
Se desejar se aprofundar ainda mais no assunto, você pode assistir ao curso em vídeo relacionado a este tutorial: Usando o Statement do Return em Python Efetivamente.
Continue aprendendo e praticando Python e aproveite ao máximo essa linguagem versátil e poderosa!