Fundamentos das Funções em Python
As funções são a base de qualquer programa em Python. Elas permitem estruturar o código, evitar repetições e criar soluções modulares e reutilizáveis.
Muitos iniciantes e até mesmo desenvolvedores experientes enfrentam dúvidas importantes ao trabalhar com funções em Python. Como passar argumentos corretamente para uma função? O que são variáveis globais e como usá-las? Para que servem os decoradores e como usar a palavra-chave global? Como retornar múltiplos valores de uma função?
Definição e Sintaxe de Funções em Python
O que é uma função em Python
Uma função é um bloco de código nomeado que pode ser chamado várias vezes. Em Python, as funções são criadas com a palavra-chave def.
Declaração e Chamada de Funções
A declaração de uma função é feita da seguinte forma:
def saudacao():
print("Olá, mundo!")
A chamada da função é feita pelo seu nome:
saudacao()
As funções em Python podem conter diversas instruções, como condicionais, loops e outras estruturas da linguagem. A definição correta de funções ajuda a criar um código legível e bem estruturado.
Argumentos de Funções em Python
Argumentos Posicionais
Os argumentos posicionais são passados para a função na ordem em que são definidos:
def saudacao(nome):
print(f"Olá, {nome}!")
saudacao("Ana")
Ao usar argumentos posicionais, é importante manter a ordem correta dos parâmetros.
Argumentos com Valor Padrão
Argumentos com valor padrão permitem definir valores que serão usados caso o argumento não seja informado:
def saudacao(nome="Convidado"):
print(f"Olá, {nome}!")
saudacao() # Olá, Convidado!
O uso de argumentos com valor padrão aumenta a flexibilidade das funções e reduz a quantidade de parâmetros obrigatórios.
Argumentos Nomeados
Os argumentos nomeados são passados com a indicação do nome do parâmetro:
def pedido(item, quantidade):
print(f"Você pediu {quantidade} {item}")
pedido(item="pizza", quantidade=2)
Argumentos nomeados tornam o código mais legível e permitem passar os parâmetros em qualquer ordem.
Número Variável de Argumentos
O Python suporta a passagem de um número indefinido de argumentos usando *args e **kwargs:
def soma(*args):
print(sum(args))
soma(1, 2, 3, 4) # 10
def exibir_info(**kwargs):
for chave, valor in kwargs.items():
print(f"{chave}: {valor}")
exibir_info(nome="João", idade=30)
A construção *args recebe qualquer quantidade de argumentos posicionais. Já **kwargs recebe qualquer quantidade de argumentos nomeados.
Retorno de Valores em Funções Python
Fundamentos do operador return
As funções podem retornar resultados através do operador return. Isso permite usar o resultado da função em outras partes do programa:
def somar(a, b):
return a + b
resultado = somar(5, 3)
print(resultado) # 8
O operador return encerra a execução da função e devolve o controle para o local onde ela foi chamada.
Retorno de Múltiplos Valores
O Python permite retornar vários valores ao mesmo tempo:
def obter_coordenadas():
return 10, 20
x, y = obter_coordenadas()
Tecnicamente, o Python retorna uma tupla, que pode ser desempacotada em variáveis separadas. Essa é uma forma prática de obter múltiplos resultados de uma única função.
Particularidades do uso de return
Se uma função não contém o operador return, ela automaticamente retorna None. Isso é importante para evitar comportamentos inesperados no código.