Funções de primeira classe
Passe e retorne funções
Funções de primeira classe é uma aula grátis de Python Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Python Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python Academy inclui 4 aulas no total.
Funções são objetos
No Python, as funções são objetos de primeira classe. Elas podem ser atribuídas a variáveis, armazenadas em estruturas de dados, passadas como argumentos e retornadas por outras funções — assim como números ou strings.
def greet():
return 'hi'
print(type(greet))
print(greet())Atribuindo funções a variáveis
O nome de uma função é apenas uma referência. Atribua-o a outro nome e faça a chamada por esse nome — sem parênteses ao se referir à própria função.
def shout(text):
return text.upper()
yell = shout
print(yell('hello'))Funções em estruturas de dados
Você pode armazenar funções em listas ou dicionários e, depois, consultá-las e chamá-las dinamicamente.
def add(a, b):
return a + b
def sub(a, b):
return a - b
ops = {'+': add, '-': sub}
print(ops['+'](10, 4))
print(ops['-'](10, 4))Passando funções como argumentos
Uma função que recebe outra função como parâmetro é chamada de função de ordem superior. A função passada é o argumento.
def apply(func, value):
return func(value)
print(apply(str.upper, 'cat'))
print(apply(len, 'cat'))map usa funções de primeira classe
Funções integradas como map dependem da passagem de funções. Aqui, uma função é aplicada a cada item.
def square(n):
return n * n
result = list(map(square, [1, 2, 3, 4]))
print(result)filter recebe um predicado
filter mantém os itens para os quais a função passada retorna True. A função decide o que permanece.
def is_even(n):
return n % 2 == 0
print(list(filter(is_even, range(10))))Retornando uma função
Uma função pode retornar outra função. Depois, a função retornada pode ser chamada separadamente.
def get_greeter():
def greeter(name):
return 'Hello ' + name
return greeter
f = get_greeter()
print(f('Ada'))Funções como chaves de ordenação
sorted aceita uma função key que associa cada item a um valor usado na ordenação.
words = ['banana', 'fig', 'cherry']
by_length = sorted(words, key=len)
print(by_length)Lambdas como funções rápidas
Uma lambda é uma pequena função anônima. Ela é perfeita para uso pontual como argumento.
nums = [5, 1, 4, 2]
print(sorted(nums, key=lambda x: -x))Funções têm atributos
Como as funções são objetos, elas possuem atributos como __name__ e uma string de documentação em __doc__.
def hello():
'Says hello.'
return 'hi'
print(hello.__name__)
print(hello.__doc__)Criando uma tabela de despacho
Combinando essas ideias, você pode criar uma tabela de despacho limpa que escolhe uma função pelo nome — sem longas sequências de if/elif.
def start():
return 'starting'
def stop():
return 'stopping'
actions = {'start': start, 'stop': stop}
command = 'start'
print(actions[command]())Verificação rápida
O que significa dizer que as funções são de “primeira classe” no Python?
Recapitulação: funções de primeira classe
Você aprendeu que, no Python:
- As funções são objetos que você pode atribuir, armazenar, passar e retornar.
- Funções de ordem superior recebem ou retornam outras funções (
map,filter, chave desorted). lambdacria funções anônimas rápidas.- Isso permite criar tabelas de despacho limpas em vez de longas condicionais.
ops = {'double': lambda x: x * 2}
print(ops['double'](21))Perguntas Frequentes
A aula “Funções de primeira classe” é grátis?
Sim — o texto completo de “Funções de primeira classe” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Python Academy, atualize para CoddyKit PRO. O curso de Python Academy inclui 4 aulas no total.
O que vou aprender em “Funções de primeira classe”?
Passe e retorne funções Você pratica Python Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Python Academy?
Nenhuma experiência prévia é necessária. Python Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Funções de primeira classe”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Python Academy?
Sim. Cada aula de Python Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Funções de primeira classe
- Closures e variáveis livres
- nonlocal e estado mutável
- Funções parciais