0Pricing
Python Academy · Aula

args e kwargs

Aceite argumentos posicionais e nomeados de comprimento variável.

args e kwargs é uma aula grátis de Python Academy no CoddyKit. Esta é a aula 3 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

*args e **kwargs permitem que as funções aceitem quantidades variáveis de argumentos posicionais e nomeados.

O que é *args?

def f(*args) reúne todos os argumentos posicionais extras em uma tupla chamada args.
def f(*args):
    print(args)
f(1, 2, 3)  # (1, 2, 3)

Percorrendo *args

for x in args: ... funciona porque args é uma tupla. Você também pode usar sum(args), max(args) etc.
def total(*args):
    return sum(args)
print(total(1, 2, 3, 4, 5))

O que é **kwargs?

def f(**kwargs) reúne todos os argumentos nomeados extras em um dicionário chamado kwargs.
def f(**kwargs):
    print(kwargs)
f(name='Alice', age=30)

Usando **kwargs

Acesse kwargs como qualquer dicionário: for key, val in kwargs.items():
def display(**kwargs):
    for k, v in kwargs.items():
        print(f'{k}: {v}')
display(x=1, y=2)

Combinando parâmetros regulares, *args e **kwargs

def f(a, b, *args, **kwargs): os parâmetros normais vêm primeiro, seguidos por *args, pelos parâmetros somente nomeados e, por fim, por **kwargs.
def f(a, *args, **kwargs):
    print(a, args, kwargs)
f(1, 2, 3, x=4)

Encaminhamento de argumentos

def wrapper(*args, **kwargs): return real_func(*args, **kwargs) encaminha perfeitamente todos os argumentos para a função envolvida.
def real(a, b, c=0): return a+b+c
def wrapper(*args, **kwargs): return real(*args, **kwargs)
print(wrapper(1, 2, c=3))

Desempacotamento com * em chamadas

*iterable desempacota qualquer iterável como argumentos posicionais. **mapping desempacota um dicionário como argumentos nomeados.
def add(a, b, c): return a+b+c
args = [1, 2, 3]
print(add(*args))

Desempacotamento estendido de iteráveis

first, *rest = [1,2,3,4] produz first=1 e rest=[2,3,4]. *head, last = lst produz o último elemento.
first, *rest = [1, 2, 3, 4]
print(first, rest)
*head, last = [1, 2, 3]
print(head, last)

Anotações de tipo para *args/**kwargs

def f(*args: int, **kwargs: str) anota o tipo de cada item individual, não o tipo do contêiner.
def f(*args: int, **kwargs: str) -> None:
    print(args, kwargs)
f(1, 2, name='Alice')

Padrões comuns

print() usa *args internamente — print(*my_list) imprime cada elemento separado por espaços. É uma prática muito característica de Python.
lst = [1, 2, 3]
print(*lst)  # 1 2 3

Verificação rápida

Que tipo *args produz dentro da função?

Revisão

*args é uma tupla de argumentos posicionais extras. **kwargs é um dicionário de argumentos nomeados extras. Use-os para APIs flexíveis e para encaminhar argumentos.

Continue avançando

Excelente trabalho! Passe para a próxima lição para continuar avançando.

Perguntas Frequentes

A aula “args e kwargs” é grátis?

Sim — o texto completo de “args e kwargs” é 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 “args e kwargs”?

Aceite argumentos posicionais e nomeados de comprimento variável. 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 3 de 4.

Quanto tempo leva a aula “args e kwargs”?

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. Definição e chamada de funções
  2. Argumentos padrão e nomeados
  3. args e kwargs
  4. Valores de retorno e escopo
← Voltar para Python Academy