Понимание разницы между *args и kwargs в Python

В Python argsи kwargsиспользуются для передачи функции переменного числа аргументов. Вот разница между ними:

  1. *args (позиционные аргументы):
    • Параметр *argsпозволяет функции принимать любое количество позиционных аргументов.
    • Он обозначается звездочкой (*), за которой следует «args» (вместо «args» можно выбрать любое имя переменной).
    • Аргументы, передаваемые с помощью *args, рассматриваются как кортеж внутри функции.
    • Порядок аргументов важен, и вам необходимо передавать их в том же порядке, который определен в функции.

Пример:

def my_function(*args):
    for arg in args:
        print(arg)
my_function('apple', 'banana', 'cherry')

Выход:

apple
banana
cherry
  1. 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