Я предполагаю, что я понимаю, как использовать их по отдельности в функции, такие как ...Как параметры args AND kargs выглядят в Python?
п (* арг) или F (** kargs)
Но что, если функция принимает и в качестве аргументов? Ex: F (* арг, ** kargs)
Я предполагаю, что я понимаю, как использовать их по отдельности в функции, такие как ...Как параметры args AND kargs выглядят в Python?
п (* арг) или F (** kargs)
Но что, если функция принимает и в качестве аргументов? Ex: F (* арг, ** kargs)
Да, это работает
def f(*args, **kwargs):
pass
При вызове функции, как этот f(1, 3, "foo", [1, 2, 10], a=1, apple=33)
, то функция args
будет (1, 3, "foo", [1, 2, 10])
, kwargs
будет {'a': 1, 'apple': 33}
.
Это тоже будет работать
def f(a, b, foo, *args, **kwargs):
pass
Но если мы называем эту функцию с теми же аргументами, a
будет 1
, b
будет 3
, foo
будет "foo"
, args
будет ([1, 2, 10])
, kwargs
будет одна и та же.
*args
получает позиционные аргументы; **kwargs
получает именованные аргументы. Например:
f(1, 2, 3, a=1, b=2, c=3)
пройдет
args = (1, 2, 3)
kwargs = {a: 1, b: 2, c: 3}