Função em Python: tudo o que você precisa saber para dominar esse recurso

Função em Python: tudo o que você precisa saber para dominar esse recurso

Como especialista em programação com mais de 20 anos de experiência, posso afirmar com confiança que entender profundamente uma função em Python é um divisor de águas na sua jornada como desenvolvedor.

O que é uma função em Python?

Conceito básico de função

Antes de tudo, uma função em Python é um bloco de código reutilizável que executa uma tarefa específica. Ou seja, é como uma receita: você chama e ela executa exatamente o que foi planejado.

Por que usar funções?

Em primeiro lugar, funções reduzem a repetição de código. Além disso, tornam seu projeto mais limpo, organizado e fácil de manter. Bem como facilitam testes unitários e debugging.

Como declarar uma função em Python

A estrutura padrão

A princípio, toda função em Python começa com a palavra-chave def, seguida pelo nome da função, parênteses e dois-pontos. Veja um exemplo simples:

pythonCopiarEditardef saudacao():
    print("Olá, seja bem-vindo!")

Chamando a função

Contudo, declarar não é o suficiente. Para executar, você precisa chamá-la:

pythonCopiarEditarsaudacao()

Funções com parâmetros

O que são parâmetros?

Primeiramente, parâmetros permitem que funções recebam dados para trabalhar. Dessa forma, ficam mais dinâmicas e úteis.

pythonCopiarEditardef saudacao_com_nome(nome):
    print(f"Olá, {nome}!")
pythonCopiarEditarsaudacao_com_nome("Lucas")

Parâmetros padrão

Sobretudo, é possível definir valores padrão:

pythonCopiarEditardef saudacao_padrao(nome="amigo"):
    print(f"Olá, {nome}!")
pythonCopiarEditarsaudacao_padrao()  # Olá, amigo!

Funções com retorno de valor

A função que devolve resultado

Antes de mais nada, funções também podem devolver resultados com a palavra-chave return:

pythonCopiarEditardef soma(a, b):
    return a + b
pythonCopiarEditarresultado = soma(5, 3)
print(resultado)  # 8

Retorno múltiplo

Apesar disso, uma função pode retornar mais de um valor:

pythonCopiarEditardef operacoes(a, b):
    return a + b, a - b

soma, subtracao = operacoes(10, 4)

Tipos de funções em Python

Funções nomeadas

Acima de tudo, são as funções tradicionais, com nome definido.

Funções anônimas (lambda)

Ou seja, são funções simples, escritas de forma mais concisa:

pythonCopiarEditardobro = lambda x: x * 2
print(dobro(4))  # 8

Funções embutidas do Python

As famosas funções built-in

Nesse sentido, Python já vem com diversas funções prontas para uso:

  • len()
  • print()
  • type()
  • range()
  • sum()

Essas funções cobrem boa parte das tarefas do dia a dia.

Funções recursivas

Quando uma função chama a si mesma

Principalmente útil em algoritmos matemáticos:

pythonCopiarEditardef fatorial(n):
    if n == 0:
        return 1
    return n * fatorial(n - 1)
pythonCopiarEditarprint(fatorial(5))  # 120

Contudo, cuidado com a profundidade da recursão!

Funções como objetos

Sim, funções também são dados

Do mesmo modo que você armazena strings ou números, pode passar funções como argumentos:

pythonCopiarEditardef executa(funcao):
    funcao()

def mensagem():
    print("Função passada como argumento!")

executa(mensagem)

Funções dentro de funções

Funções aninhadas (nested functions)

Ou seja, é possível criar uma função dentro de outra:

pythonCopiarEditardef externa():
    def interna():
        print("Sou interna!")
    interna()
pythonCopiarEditarexterna()

Closures em Python

Mantendo estado entre chamadas

Juntamente com funções internas, closures surgem quando a função interna lembra do ambiente externo:

pythonCopiarEditardef contador():
    x = 0
    def incrementar():
        nonlocal x
        x += 1
        return x
    return incrementar

conta = contador()
print(conta())  # 1
print(conta())  # 2

Funções decoradoras

Adicionando comportamentos

Decoradores modificam funções sem alterá-las diretamente:

pythonCopiarEditardef decorador(funcao):
    def wrapper():
        print("Antes da função")
        funcao()
        print("Depois da função")
    return wrapper

@decorador
def saudacao():
    print("Olá!")

saudacao()

Argumentos variáveis em funções

***args e kwargs

Para receber qualquer número de argumentos:

pythonCopiarEditardef soma_total(*numeros):
    return sum(numeros)
pythonCopiarEditarprint(soma_total(1, 2, 3, 4))  # 10
pythonCopiarEditardef exibe_dados(**dados):
    for chave, valor in dados.items():
        print(f"{chave}: {valor}")
pythonCopiarEditarexibe_dados(nome="Maria", idade=30)

Boas práticas ao criar uma função em Python

Nomes claros e objetivos

  • Use verbos para indicar ação.
  • Nada de abreviações obscuras.
  • Menos é mais: evite funções muito longas.

Evite efeitos colaterais

Ou seja, uma função deve ser previsível e não alterar variáveis externas sem necessidade.

Funções puras

Determinismo total

A função pura:

  • Sempre retorna o mesmo resultado com os mesmos argumentos.
  • Não altera o estado do sistema.

Essas funções facilitam testes e reduzem bugs.

Função em Python no mundo real

Aplicações práticas

  • APIs: funções organizam endpoints.
  • Análise de dados: funções manipulam e processam datasets.
  • Machine Learning: definem etapas de pré-processamento.
  • Web: controlam rotas e respostas do servidor.

Desempenho e funções

Evite funções desnecessárias

Apesar de úteis, excesso de funções pode prejudicar performance, especialmente se houver chamadas recursivas mal controladas.

Funções inline e otimizações

Além disso, funções lambda e uso consciente de map(), filter() e reduce() podem tornar seu código mais performático e elegante.

Diferença entre função e método em Python

Entendendo a sutil distinção

Funções vivem soltas no código, enquanto métodos estão ligados a objetos:

pythonCopiarEditardef funcao_livre():
    pass

class Exemplo:
    def metodo(self):
        pass

Ambos funcionam de forma parecida, mas o contexto de uso é diferente.

Documentação de funções

Use docstrings sempre

A documentação ajuda outros (e você mesmo) a entender o propósito da função:

pythonCopiarEditardef saudacao():
    """Exibe uma mensagem de saudação padrão."""
    print("Olá!")

Use aspas triplas e explique o que ela faz, seus parâmetros e o retorno.


Minhas Impressões Pessoais

Pessoalmente, considero uma função em Python o verdadeiro coração de qualquer aplicação bem estruturada. Sua simplicidade aliada à flexibilidade permite construir desde scripts básicos até arquiteturas complexas. Com recursos como parâmetros, retornos e decoradores, você tem tudo que precisa para criar soluções limpas, reutilizáveis e elegantes.


Dessa forma, compreender como uma função em Python funciona é essencial não só para dominar a linguagem, mas para se destacar como um programador de verdade. Em suma, ela é o pilar da produtividade, clareza e manutenibilidade em qualquer projeto Python.

Samsung Smart TV 50" Crystal UHD 4K 50DU8000 - Painel Dynamic Crystal Color, Gaming Hub

Amazon.com.br

Smart TV 50" HQ UDE50HR315LN 4K com Conversor Digital 3 HDMI 2 USB WI-FI Android 11 Design Slim e Tela Frameless

Amazon.com.br

Smart TV Philips 50" 4K HDR 50PUG7019/78, Google TV, Comando de Voz

Amazon.com.br
Função em Python: tudo o que você precisa saber para dominar esse recurso

Perguntas Frequentes (FAQ)

O que é uma função em Python?

Uma função em Python é um bloco de código que realiza uma tarefa específica e pode ser reutilizado em diferentes partes do programa.

Como eu crio uma função em Python?

Para criar uma função, você usa a palavra-chave “def”, seguida pelo nome da função e parênteses, e depois escreve o código indentado que a função deve executar.

Posso passar parâmetros para uma função em Python?

Sim, você pode passar parâmetros para uma função, o que permite que ela receba valores e execute ações com base nesses dados.

Prof. Eduardo Henrique Gomes
Prof. Eduardo Henrique Gomes

Apaixonado por tecnologia e análise de gadgets, trazendo reviews e insights para a Web Academy.