O objetivo de * e ** em Python
-
a definição de
*
em Python -
a definição de
**
em Python -
os usos de
*
e**
em chamadas de função em Python
Este artigo explica o propósito de *
e **
em Python.
Em Python, usamos o asterisco único (*
) e o asterisco duplo (**
) para significar um número variável de argumentos.
Podemos passar qualquer número de argumentos em uma função Python de uma das seguintes maneiras.
- Argumentos posicionais (
*
) - Argumentos de palavra-chave (
**
)
a definição de *
em Python
Use o símbolo *
em Python para permitir um número variável de argumentos / parâmetros posicionais para a função.
Siga o exemplo abaixo.
def function_singleasterix(*someargs):
for i in someargs:
print(i)
Agora, o código do driver, com lista
ou tuple
, é o seguinte.
listdata = ["Alex", "Tom", "John", "Alice"]
function_singleasterix(listdata)
Resultado:
['Alex', 'Tom', 'John', 'Alice']
Use argumentos apenas posicionais se não quiser que os usuários saibam o nome dos parâmetros.
Por exemplo, é aconselhável usar variáveis apenas posicionais em APIs - isso evita quebras no caso de qualquer alteração na API se o nome do parâmetro for modificado.
a definição de **
em Python
Use o símbolo **
em Python para permitir um número variável de argumentos / parâmetros de palavra-chave para a função. Observe que o argumento após deve ser um mapeamento (par de valores-chave de dicionário) itens, não uma tupla ou uma lista.
Siga o exemplo de código abaixo.
def function_doubleasterix(**keywordargs):
print("The keys in the kwargs dicionary are -", keywordargs.keys())
print("The values in the kwargs dicionary are -", keywordargs.values())
print("--The key value assignment in the 'keywordargs' dictionary are as follows--")
for key, value in keywordargs.items():
print("%s == %s" % (key, value))
No exemplo acima, keywordargs
está associado a um dicionário
como no programa abaixo.
function_doubleasterix(SNo001="Alex", SNo002="Tom")
Resultado:
The keys in the 'keywordargs' dicionary are - dict_keys(['SNo001', 'SNo002'])
The values in the 'keywordargs' dicionary are - dict_values(['Alex', 'Tom'])
--The key value assignment in the 'keywordargs' dictionary are as follows--
SNo001 == Alex
SNo002 == Tom
No exemplo acima, o **keywordargs
fornece argumentos de palavra-chave como pares de valor-chave dicionário
.
os usos de *
e **
em chamadas de função em Python
Os símbolos *
e **
também são usados em chamadas de função. Use-os para passar um número variável de argumentos para uma função usando um dos seguintes.
- uma lista -
*
- uma tupla -
*
- um dicionário -
**
Aqui estão vários exemplos que você pode seguir.
Chame a função com uma lista
de variável como entrada. Use *
como segue
varlist = ["Tom", "John", "Alice"]
functiondef(*varlist)
Chame a função com uma variável dicionário
como entrada. Use **
como segue
vardict = {"a": "Tom", "b": "John", "c": "Alice"}
functiondef(**vardict)
Chame a função com uma variável tuple
como entrada. Use *
como segue
vartuple = ("Tom", "John", "Alice")
functiondef(*vartuple)
A saída para todos os casos acima é:
SNo1 = Tom
SNo2 = John
SNo3 = Alice