Palavra-chave e argumento posicional em Python
Python, sendo uma linguagem de programação extremamente adaptável, conhecida por sua versatilidade e ampla gama de aplicações, oferece vários métodos para passar argumentos para funções. Dois métodos frequentemente usados são argumentos de palavras-chave e argumentos posicionais. Ter uma compreensão das distinções entre esses dois tipos de argumentos é crucial para escrever um código limpo. Neste tutorial, aprenderemos sobre palavras-chave e argumentos posicionais em Python.
Argumentos posicionais
Argumentos posicionais são o tipo fundamental de argumentos em Python. Quando você chama uma função e passa argumentos sem especificar seus nomes, o Python combina os argumentos com base em suas posições. A ordem dos argumentos deve corresponder à ordem dos parâmetros definidos na definição da função ou na assinatura da função.
Vejamos alguns exemplos para entender melhor os argumentos posicionais:
Exemplo
Neste exemplo, criaremos uma função que terá dois parâmetros nome de usuário e idade do usuário, a função irá verificar se o usuário é elegível para votação eleitoral ou não.
def check_eligibility(name, age):
print("Hello",name)
if(age<18):
print("You are not allowed to vote.")
else:
print("You are allowed to vote.")
check_eligibility("Mohan", 25)
Saída
Hello Mohan
You are allowed to vote.
Explicação
No código acima, a função check_eligibility() aceita dois argumentos posicionais: nome e idade. Quando chamamos a função check_eligibility() e passamos os argumentos "Mohan" e 25, o Python combina "Mohan" com o parâmetro name e 25 com o parâmetro age com base em suas posições.
Argumentos posicionais são muito úteis quando se lida com um pequeno número de argumentos onde a ordem de sua colocação é importante. Entretanto, os argumentos posicionais tornam-se confusos e propensos a erros quando se trabalha com funções que envolvem um grande número de argumentos ou quando alguns argumentos têm valores padrão. Discutiremos os valores padrão nos conceitos de argumento de palavra-chave.
Argumentos de palavras-chave
Argumentos de palavra-chave nos permitem especificar o nome do parâmetro para o qual você está passando explicitamente um argumento. Essa abordagem melhora a legibilidade do código e ajuda a evitar erros ao lidar com funções que possuem um grande número de argumentos ou argumentos com valores padrão. Argumentos de palavras-chave são menos propensos a erros. Argumentos de palavra-chave permitem passar argumentos em qualquer ordem, desde que você especifique o nome do parâmetro.
Vamos modificar o exemplo anterior para usar argumentos de palavras-chave
Exemplo
def check_eligibility(name, age):
print("Hello",name)
if(age<18):
print("You are not allowed to vote.")
else:
print("You are allowed to vote.")
check_eligibility(name="Mohan", age=25)
Saída
Hello Mohan
You are allowed to vote.
Explicação
Neste exemplo, usamos a sintaxe name= "Mohan" e age=25 ao chamar a função check_eligibility(). Ao mencionar explicitamente os nomes dos parâmetros, é claramente mencionado qual argumento é atribuído a qual parâmetro.
Misturando argumentos posicionais e de palavras-chave
Em python, também podemos usar argumentos posicionais e de palavras-chave ao mesmo tempo em chamadas de função, mas precisamos ter certeza de que a seguinte condição está sendo seguida.
Todos os argumentos posicionais devem ser passados antes dos argumentos de palavras-chave. Em outras palavras, uma vez que passamos um argumento de palavra-chave, o restante dos argumentos a seguir devem ser argumentos de palavra-chave.
Exemplo
def check_eligibility(name, age, gender):
print("Hello",name)
print("Gender : ",gender)
if(age<18):
print("You are not allowed to vote.")
else:
print("You are allowed to vote.")
check_eligibility("Mohan", gender='Male', age=25)
Saída
Hello Mohan
Gender : Male
You are allowed to vote.
Explicação
No código acima, passamos o nome como argumento posicional e gênero e idade como argumentos de palavra-chave. Como você pode ver no exemplo, a ordem dos argumentos das palavras-chave não importa.
Valores padrão
Em Python, podemos atribuir valores padrão aos parâmetros de função. Os valores padrão são usados quando os argumentos correspondentes não são fornecidos durante a chamada da função. Os valores padrão podem ser usados quando você deseja tornar determinados parâmetros opcionais.
Exemplo 4
def check_eligibility(name, age, country="India"):
print("Hello",name)
print("Country : ",country)
if(age<18):
print("You are not allowed to vote.")
else:
print("You are allowed to vote.")
check_eligibility("Mohan", age=25)
Saída
Hello Mohan
Country : India
You are allowed to vote.
Melhores Práticas
Use argumentos posicionais para funções com um pequeno número de argumentos onde a ordem é importante.
Use argumentos de palavras-chave para funções com um número maior de argumentos.
-
Seja consistente em sua base de código. Escolha argumentos posicionais ou de palavras-chave para funções com um número consistente de argumentos.
Conclusão
Neste tutorial, discutimos sobre argumentos posicionais, argumentos de palavras-chave e valores padrão para argumentos opcionais. Seguindo as práticas recomendadas mencionadas acima, você pode aproveitar ao máximo os argumentos posicionais e de palavras-chave.