8.1 Operador return
Em Python, o operador return desempenha um papel central nas funções, pois é com ele que uma função pode retornar seu valor. Entender seu uso é importante para o desenvolvimento eficaz de software.
O operador return encerra a execução de uma função e "retorna" o resultado para o código que a chamou. Se uma função deve fornecer um resultado que será usado posteriormente, usa-se return.
Retornando valor
As funções podem retornar qualquer tipo de dado, incluindo números, strings, objetos, até mesmo outras funções e None. Exemplo:
def sum(a, b):
return a + b
result = sum(5, 3)
print(result) # Exibe 8
O resultado da soma a + b pode ser atribuído à variável result.
Retornando múltiplos valores
Python permite retornar múltiplos valores de uma função usando tuplas:
def get_user():
name = "Ivan"
age = 25
return name, age
user_name, user_age = get_user()
print(user_name, user_age) # Exibe Ivan 25
Usando return para encerrar uma função
O operador return também pode ser usado para terminar imediatamente uma função, incluindo loops ou blocos condicionais dentro da função:
def check_password(pswd):
if len(pswd) < 8:
return "Senha muito curta"
return "Senha aceita"
return sem valor
Se return for usado sem um valor ou omitido completamente, a função retorna None:
def print_message(text):
print(text)
return
result = print_message("Oi")
print(result) # Exibe None
O operador return é uma ferramenta poderosa em Python, fornecendo flexibilidade no controle do fluxo de execução do programa. Ele permite que funções não apenas retornem valores para uso futuro, mas também controlem a lógica de execução, o que torna o código mais claro e fácil de entender.
8.2 Operador pass
Em Python existe um operador especial — pass, que não faz nada. O operador pass é usado como um marcador em blocos de código onde sintaticamente é necessário um conteúdo, mas funcionalmente ele ainda não está definido (deve haver algum código, mas ainda não se decidiu qual).
Isso é especialmente útil em casos onde você está trabalhando em um grande projeto e deseja estruturar o programa, sem permitir que ele execute nenhuma operação. Abaixo estão alguns exemplos do uso do pass.
Nas definições de funções:
def my_function():
pass
Aqui, pass é usado para definir uma função que ainda não tem implementação.
Em loops e condições:
for item in my_list:
pass
Se for necessário criar um loop, mas não se deseja executar nenhuma ação no corpo do mesmo.
Em classes:
A definição de uma classe sem métodos e atributos, para reservar o nome e a estrutura da classe para uso futuro.
O operador pass é frequentemente usado durante o processo de desenvolvimento e testes, quando a estrutura do programa já está clara, mas os detalhes da implementação de componentes individuais ainda não estão definidos. Isso permite ao programador organizar o código e adicionar funcionalidade gradualmente sem interromper o funcionamento do aplicativo como um todo.
8.3 Retornando uma função
Em Python, a capacidade de uma função retornar outra função é uma poderosa ferramenta, graças ao suporte de closures* e funções de primeira classe. Essa característica da linguagem permite desenvolver programas flexíveis e expressivos, usando conceitos como decorators* e fábricas de funções*.
Em Python, funções são objetos, o que significa que podem ser atribuídas a variáveis, passadas para outras funções como argumentos ou retornadas por elas como resultados. Essa capacidade torna as funções uma ferramenta poderosa para criar um código modular e de fácil teste.
Vamos, por exemplo, criar uma função que irá gerar funções para elevar um número a uma determinada potência. Uma função vai elevar ao quadrado, outra ao cubo e assim por diante. Veja como esse código pode ser:
def power(exponent):
def inner(base):
return base ** exponent
return inner
square = power(2)
print(square(3)) # Exibe 9
cube = power(3)
print(cube(3)) # Exibe 27
Observe que a função power não chama a função inner. Em vez disso, dentro da função power, é declarada a função inner com o parâmetro base. Mas a função inner não é apenas declarada, ela usa o parâmetro exponent dentro dela.
GO TO FULL VERSION