Трюк дня. Звездочка в списке параметров функции
В Python 3 можно использовать звездочку "*" в списке параметров функции, чтобы следующие за ней параметры считались обязательными именованными аргументами:
>>> def f(a, b, *, c='x', d='y', e='z'):
return 'Hello'
Чтобы передать значения для c, d и e, вам придется явно задать их в виде пар "ключ=значение":
>>> f(1, 2, 'p', 'q', 'v')
TypeError:
"f() takes 2 positional arguments but 5 were given"
>>> f(1, 2, c='p', d='q',e='v')
'Hello'
Укажем именованные аргументы без значений по умолчанию и увидим, что они обязательны:
>>> def f(a, b, *, c, d, e):
return 'Hello'
>>> f(1, 2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: f() missing 3 required keyword-only arguments: 'c', 'd', and 'e'
#tips
В Python 3 можно использовать звездочку "*" в списке параметров функции, чтобы следующие за ней параметры считались обязательными именованными аргументами:
>>> def f(a, b, *, c='x', d='y', e='z'):
return 'Hello'
Чтобы передать значения для c, d и e, вам придется явно задать их в виде пар "ключ=значение":
>>> f(1, 2, 'p', 'q', 'v')
TypeError:
"f() takes 2 positional arguments but 5 were given"
>>> f(1, 2, c='p', d='q',e='v')
'Hello'
Укажем именованные аргументы без значений по умолчанию и увидим, что они обязательны:
>>> def f(a, b, *, c, d, e):
return 'Hello'
>>> f(1, 2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: f() missing 3 required keyword-only arguments: 'c', 'd', and 'e'
#tips