Что такое *args и **kwargs

Что такое в параметрах функции *args и **kwargs?


Ответы (1 шт):

Автор решения: Grant

*args указывает, что в функцию может быть передано неограниченное количество позиционных аргументов. Звездочка перед args указывает, что все указанные позиционные аргументы превратятся в список. Пример:

def func1(*args):
  for i in args: # уже без звездочки
    print(i)

func(1, 2, 3)

Важно учитывать, что позиционные аргументы должны указываться в начале

**kwargs указывает, что в функцию может быть передано неограниченное количество именованных аргументов. Две звездочки перед kwargs указывают, что все указанные именованные аргументы превратятся в словарь, где ключом является имя аргумента, а значением ключа - значение аргумента. Пример:

def func2(**kwargs):
  for i in kwargs: # также без звездочек
    print(f"Key: {i}, Value: {kwargs[i]}") # и здесь без звездочек
func2(a=1, b=2, c=3)

Важно учитывать, что именованные аргументы должны передаваться в конце

→ Ссылка