Argumentos de palavras-chave Python

Resumo : neste tutorial, você aprenderá sobre os argumentos de palavras-chave do Python e como usá-los para tornar as chamadas de função mais óbvias.

Introdução aos argumentos de palavras-chave do Python

Vamos começar com uma função simples que calcula o preço líquido a partir do preço de venda e do desconto:

def get_net_price(price, discount):
    return price * (1-discount)Linguagem de código:  Python  ( python )

A get_net_price()função possui dois parâmetros: pricee discount.

Veja a seguir como chamar a get_net_price()função para calcular o preço líquido a partir do preço 100e do desconto 10%:

net_price = get_net_price(100, 0.1)
print(net_price)Linguagem de código:  Python  ( python )

Saída:

90.0Linguagem de código:  Python  ( python )

Na get_net_price(100, 0.1)chamada de função, passamos cada argumento como um argumento posicional. Em outras palavras, passamos o priceargumento primeiro e o discountargumento depois.

No entanto, a chamada de função get_net_price(100, 0.1)tem um problema de legibilidade. Porque olhando apenas para essa chamada de função, você não sabe qual argumento é pricee qual é o discount.

Além disso, ao chamar a get_net_price()função, você precisa saber a posição de cada argumento.

Caso contrário, a função calculará net_priceincorretamente. Por exemplo:

net_price = get_net_price(0.1, 100)
print(net_price)Linguagem de código:  Python  ( python )

Saída:

-9.9Linguagem de código:  Python  ( python )

Para melhorar a legibilidade, Python introduz argumentos de palavras-chave.

O seguinte mostra a sintaxe do argumento da palavra-chave:

fn(parameter1=value1,parameter2=value2)Linguagem de código:  Python  ( python )

Ao usar a sintaxe de argumento de palavra-chave, você não precisa especificar os argumentos na mesma ordem definida na função.

Portanto, você pode chamar uma função trocando as posições dos argumentos assim:

fn(parameter2=value2,parameter1=value1)Linguagem de código:  Python  ( python )

O seguinte mostra como usar a sintaxe do argumento da palavra-chave para chamar a get_net_price()função:

net_price = get_net_price(price=100, discount=0.1)Linguagem de código:  Python  ( python )

Ou:

net_price = get_net_price(discount=0.1, price=100)Linguagem de código:  Python  ( python )

Ambos retornam o mesmo resultado.

Quando você usa argumentos de palavras-chave, seus nomes são importantes, não suas posições.

Observe que você pode chamar uma função misturando argumentos posicionais e de palavras-chave. Por exemplo:

net_price = get_net_price(100, discount=0.1)Linguagem de código:  Python  ( python )

Argumentos de palavras-chave e parâmetros padrão

Suponha que você tenha a seguinte get_net_price()função que calcula o preço líquido a partir do preço de venda, imposto e desconto.

def get_net_price(price, tax=0.07, discount=0.05):
    return price * (1 + tax - discount)Linguagem de código:  Python  ( python )

Na get_net_price()função, os parâmetros de imposto e desconto possuem valores padrão de 7%e 5%respectivamente.

O seguinte chama a get_net_price()função e usa os valores padrão para taxos discountparâmetros e:

net_price = get_net_price(100)
print(net_price)Linguagem de código:  Python  ( python )

Saída:

102.0Linguagem de código:  Python  ( python )

Suponha que você queira usar o valor padrão para o taxparâmetro, mas não discount. A chamada de função a seguir não funciona corretamente.

net_price = get_net_price(100, 0.06)Linguagem de código:  Python  ( python )

… porque o Python atribuirá 100preços e 0.1impostos, não descontos.

Para corrigir isso, você deve usar argumentos de palavras-chave:

net_price = get_net_price(price=100, discount=0.06)
print(net_price)Linguagem de código:  Python  ( python )

Saída:

101.0Linguagem de código:  Sessão Shell  ( shell )

Ou você pode misturar os argumentos posicionais e de palavras-chave:

net_price = get_net_price(100, discount=0.06)
print(net_price)Linguagem de código:  Python  ( python )

Saída:

101.0Linguagem de código:  Sessão Shell  ( shell )

Requisitos de argumento de palavra-chave Python

Depois de usar um argumento de palavra-chave, você precisará usar argumentos de palavra-chave para os parâmetros restantes.

O seguinte resultará em um erro porque usa o argumento posicional após um argumento de palavra-chave:

net_price = get_net_price(100, tax=0.08, 0.06)Linguagem de código:  Python  ( python )

Erro:

SyntaxError: positional argument follows keyword argumentLinguagem de código:  Sessão Shell  ( shell )

Para corrigir isso, você precisa usar o argumento de palavra-chave para o terceiro argumento assim:

net_price = get_net_price(100, tax=0.08, discount=0.06)
print(net_price)Linguagem de código:  Python  ( python )

Resumo

  • Use a palavra-chave argumentos do Python para tornar sua chamada de função mais legível e óbvia, especialmente para funções que aceitam muitos argumentos.
  • Todos os argumentos após o primeiro argumento de palavra-chave também devem ser argumentos de palavra-chave.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *