Python para iniciantes: do zero ao primeiro projeto
Aprenda sobre variáveis, loops e funções e crie seu primeiro projeto Python em apenas 2 horas!
No desenvolvimento de software, frequentemente nos deparamos com a necessidade de criar funções flexíveis, capazes de lidar com um número variável de argumentos. Em Python, isso é possível utilizando os conceitos de *args e **kwargs. Neste tutorial, vamos explorar como criar e utilizar funções com número arbitrário de argumentos em Python.
*args e **kwargs?Em Python, *args e **kwargs são usados para permitir que uma função aceite um número variável de argumentos.
*args permite que você passe um número variável de argumentos posicionais para uma função.**kwargs permite que você passe um número variável de argumentos nomeados (ou argumentos com palavra-chave) para uma função.*argsVamos começar com um exemplo simples de uma função que soma um número arbitrário de valores:
def somar(*valores):
return sum(valores)
resultado = somar(1, 2, 3, 4)
print(resultado) # Saída: 10TestarNeste exemplo, a função somar pode receber qualquer quantidade de argumentos e somá-los. O operador * antes do parâmetro valores indica que todos os argumentos passados para a função serão acumulados em uma tupla.
**kwargsAgora, vejamos um exemplo de uma função que exibe argumentos passados com e sem palavra-chave:
def exibe_argumentos(*args, **kwargs):
print(f'Argumentos passados sem palavra-chave: {args}')
print(f'Argumentos passados com palavra-chave: {kwargs}')
exibe_argumentos(1, 2, 3, nome='Juliano', idade=30)TestarNeste exemplo, *args captura os argumentos posicionais em uma tupla, enquanto **kwargs captura os argumentos nomeados em um dicionário.
*args e **kwargs JuntosVocê pode combinar *args e **kwargs em uma única função para aceitar tanto argumentos posicionais quanto nomeados:
def funcao_completa(a, b, *args, **kwargs):
print(f'a: {a}')
print(f'b: {b}')
print(f'args: {args}')
print(f'kwargs: {kwargs}')
funcao_completa(1, 2, 3, 4, 5, nome='Juliano', idade=30)TestarA saída será:
a: 1
b: 2
args: (3, 4, 5)
kwargs: {'nome': 'Juliano', 'idade': 30}Você também pode usar os operadores * e ** para desmembrar sequências ou dicionários na hora de chamar uma função:
valores = [1, 2, 3]
dic = {'nome': 'Juliano', 'idade': 30}
exibe_argumentos(*valores, **dic)TestarNeste caso, a lista valores e o dicionário dic são desmembrados em argumentos individuais.
Os decoradores em Python frequentemente utilizam *args e **kwargs para garantir que possam decorar qualquer função, independentemente do número e tipo de argumentos que ela aceita.
def meu_decorador(func):
def wrapper(*args, **kwargs):
print("Executando algo antes da função")
resultado = func(*args, **kwargs)
print("Executando algo depois da função")
return resultado
return wrapper
@meu_decorador
def dizer_oi(nome):
print(f'Olá, {nome}!')
dizer_oi('Juliano')TestarA saída será:
Executando algo antes da função
Olá, Juliano!
Executando algo depois da funçãoFunções com número arbitrário de argumentos em Python são extremamente úteis para criar funções flexíveis e reutilizáveis. Utilizando *args e **kwargs, você pode criar funções que aceitam qualquer quantidade de argumentos posicionais e nomeados, tornando seu código mais robusto e adaptável a diferentes situações.
Experimente utilizar *args e **kwargs em seus próprios projetos e veja como eles podem simplificar a manipulação de argumentos em suas funções!
Aprenda sobre variáveis, loops e funções e crie seu primeiro projeto Python em apenas 2 horas!
Saia do zero e analise dados com Python e Pandas neste curso gratuito com certificado!
Aprenda a programar com Python e explore a inteligência artificial! Crie um chatbot prático que interage com seus próprios dados. Comece agora!
Estudo aprofundado do potencial de LLMs multimodais: soluções, mecanismos e geração de valor Os Modelos de Linguagem de Grande Porte (LLMs) multimodais representam uma…
Quando se trata de visualização de dados em Python, o Matplotlib é uma das bibliotecas mais populares e poderosas disponíveis. Para cientistas de dados,…
Ter um portfólio online é essencial para se destacar no mercado. Se você atua na área de dados, tecnologia ou negócios, apresentar seus projetos…
Comente e participe da conversa
Crie sua conta gratuita e compartilhe sua opinião nos comentários.
Entre para a Asimov