В Python argsи kwargsиспользуются для передачи функции переменного числа аргументов. Вот разница между ними:
- *args (позиционные аргументы):
- Параметр
*argsпозволяет функции принимать любое количество позиционных аргументов. - Он обозначается звездочкой (*), за которой следует «args» (вместо «args» можно выбрать любое имя переменной).
- Аргументы, передаваемые с помощью
*args, рассматриваются как кортеж внутри функции. - Порядок аргументов важен, и вам необходимо передавать их в том же порядке, который определен в функции.
- Параметр
Пример:
def my_function(*args):
for arg in args:
print(arg)
my_function('apple', 'banana', 'cherry')
Выход:
apple
banana
cherry
- kwargs (аргументы ключевых слов):
- Параметр
kwargsпозволяет функции принимать любое количество аргументов ключевых слов. - Он обозначается двумя звездочками (), за которыми следует «kwargs» (вместо «kwargs» можно выбрать любое имя переменной).
- Аргументы, передаваемые с помощью
kwargs, рассматриваются как словарь внутри функции. - Аргументы ключевых слов определяются с использованием синтаксиса «ключ-значение», аналогичного словарям.
- Параметр
Пример:
def my_function(kwargs):
for key, value in kwargs.items():
print(key, value)
my_function(fruit='apple', color='red', price=1.99)
Выход:
fruit apple
color red
price 1.99