0Pricing
Python Academy · Aula

Funções como objetos de primeira classe

Entenda os fechamentos e a passagem de funções como argumentos.

Funções como objetos 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.

Introdução

No Python, as funções são objetos de primeira classe: podem ser passadas como argumentos, retornadas e armazenadas em estruturas de dados.

Funções são objetos

def double(x): return x*2 cria um objeto de função. double é apenas um nome. Você pode atribuí-lo: fn = double; fn(5) funciona.
def double(x): return x * 2
fn = double
print(fn(5))
print(type(fn))

Passando funções como argumentos

def apply(func, val): return func(val) — func é um argumento chamável. Isso é programação de ordem superior.
def apply(func, val): return func(val)
print(apply(abs, -7))
print(apply(str, 42))

Armazenando funções em contêineres

ops = [add, sub, mul] armazena objetos de função em uma lista. Itere e chame: for op in ops: op(a, b).
ops = [str.upper, str.lower, str.strip]
for op in ops:
    print(op('  Hello  '))

Retornando funções

Uma função pode retornar outra função. def make_adder(n): def adder(x): return x+n; return adder
def make_adder(n):
    def adder(x): return x + n
    return adder
add10 = make_adder(10)
print(add10(5), add10(20))

Fechamentos

Um fechamento captura variáveis do escopo externo. A função interna “fecha sobre” n em make_adder.
def counter(start=0):
    count = [start]
    def inc():
        count[0] += 1
        return count[0]
    return inc
c = counter()
print(c(), c(), c())

Lambda como função anônima

lambda x: x*2 é uma função anônima de uma única expressão. É útil como uma função de retorno curta, mas atribua-lhe um nome se a lógica não for trivial.
nums = [3, 1, 4, 1, 5]
print(sorted(nums, key=lambda x: -x))

map() e filter()

map(func, iterable) aplica func a cada elemento. filter(pred, iterable) mantém os elementos para os quais pred é True.
nums = [1, 2, 3, 4, 5]
print(list(map(lambda x: x**2, nums)))
print(list(filter(lambda x: x%2==0, nums)))

functools.reduce()

reduce(func, seq) combina uma sequência progressivamente: reduce(lambda a,b: a+b, [1,2,3,4]) resulta em 10.
from functools import reduce
print(reduce(lambda a,b: a*b, [1,2,3,4,5]))

Verificação de chamabilidade

callable(obj) retorna True se obj puder ser chamado. Funções, classes e objetos com __call__ podem ser chamados.
print(callable(print))
print(callable(42))
class C:
    def __call__(self): pass
print(callable(C()))

Introspecção de funções

func.__name__, func.__doc__, func.__annotations__, inspect.signature(func) fornecem metadados sobre a função.
import inspect
def greet(name: str) -> str:
    '''Returns a greeting.'''
    return f'Hi {name}'
print(greet.__name__, greet.__annotations__)
print(inspect.signature(greet))

Verificação rápida

O que é um fechamento em Python?

Recapitulação

Funções são objetos de primeira classe. Passe-as como argumentos, retorne-as de funções e armazene-as em contêineres. Fechamentos capturam o escopo externo. Use lambda para expressões simples de uma linha.

Continue

Excelente progresso! Continue para dominar o próximo conceito.

Perguntas Frequentes

A aula “Funções como objetos de primeira classe” é grátis?

Sim — o texto completo de “Funções como objetos 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 como objetos de primeira classe”?

Entenda os fechamentos e a passagem de funções como argumentos. 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 como objetos 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

  1. Funções como objetos de primeira classe
  2. Escrita de decoradores personalizados
  3. O decorador @property
  4. @classmethod e @staticmethod
← Voltar para Python Academy