Что такое *args и **kwargs
Что такое в параметрах функции *args и **kwargs?
Ответы (1 шт):
*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)
Важно учитывать, что именованные аргументы должны передаваться в конце