Várias maneiras de escrever parâmetros de função
- Parâmetros posicionais
- Parâmetros padrão
- parâmetro variável
- argumentos de palavra-chave
- parâmetros de palavra-chave nomeada
Os cinco parâmetros acima podem ser misturados e usados de acordo com a situação real e as necessidades reais.
A ordem das definições numéricas deve ser: parâmetros obrigatórios, parâmetros padrão, parâmetros variáveis, parâmetros de palavras-chave nomeadas e parâmetros de palavras-chave.
Classificação de parâmetros
- Parâmetros obrigatórios
- Parâmetros opcionais
parâmetro variável
def calc(*numbers):
sum = 0
for n in numbers:
sum = sum + n * n
return sum
Números são parâmetros variáveis, listas e tuplas podem ser passadas
argumentos de palavra-chave
O conteúdo recebido é um dicionário
def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw)
Qual é o uso de parâmetros de palavras-chave? Pode estender a funcionalidade da função. Por exemplo, na função person, temos a garantia de receber os dois parâmetros nome e idade, mas se o chamador estiver disposto a fornecer mais parâmetros, também podemos receber
parâmetros de palavra-chave nomeada
Ao contrário dos parâmetros de palavra-chave **kw, os parâmetros de palavra-chave nomeada requerem um delimitador especial ==*==, e os parâmetros após * são considerados parâmetros de palavra-chave nomeada.
Através de uma tupla e um ditado, a função acima pode ser chamada
def f1(a, b, c=0, *args, **kw):
print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)
def f2(a, b, c=0, *, d, **kw):
print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)
>>> f1(1, 2)
a = 1 b = 2 c = 0 args = () kw = {
}
>>> f1(1, 2, c=3)
a = 1 b = 2 c = 3 args = () kw = {
}
>>> f1(1, 2, 3, 'a', 'b')
a = 1 b = 2 c = 3 args = ('a', 'b') kw = {
}
>>> f1(1, 2, 3, 'a', 'b', x=99)
a = 1 b = 2 c = 3 args = ('a', 'b') kw = {
'x': 99}
>>> f2(1, 2, d=99, ext=None)
a = 1 b = 2 c = 0 d = 99 kw = {
'ext': None}
>>> args = (1, 2, 3, 4)
>>> kw = {
'd': 99, 'x': '#'}
>>> f1(*args, **kw)
a = 1 b = 2 c = 3 args = (4,) kw = {
'd': 99, 'x': '#'}
>>> args = (1, 2, 3)
>>> kw = {
'd': 88, 'x': '#'}
>>> f2(*args, **kw)
a = 1 b = 2 c = 3 d = 88 kw = {
'x': '#'}