Pular para o conteúdo

Como retornar uma função em Python

[

O Statement do Return em Python: Uso e Melhores Práticas

Python Tricks Dictionary Merge

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:

Take the Quiz »

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:

def saudacao(nome):
mensagem = f"Olá, {nome}!"
return mensagem
nome = input("Digite seu nome: ")
mensagem_de_saudacao = saudacao(nome)
print(mensagem_de_saudacao)

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:

def dobrar_numero(numero):
resultado = numero * 2
return resultado
numero = 5
dobro = dobrar_numero(numero)
print(dobro)

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:

def somar_numeros(numero1, numero2):
resultado = numero1 + numero2
numero1 = 2
numero2 = 3
soma = somar_numeros(numero1, numero2)
print(soma)

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:

def dividir_numero(numero1, numero2):
resultado = numero1 / numero2
resto = numero1 % numero2
return resultado, resto
numero1 = 10
numero2 = 3
quociente, resto = dividir_numero(numero1, numero2)
print(f"Quociente: {quociente}")
print(f"Resto: {resto}")

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!