Параметри *args та **kwargs
Усі хоч раз бачили такий запис, і зараз ми дізнаємося, що то за символи. Одразу скажу, що
Усі хоч раз бачили такий запис, і зараз ми дізнаємося, що то за символи. Одразу скажу, що
args
і kwargs
— загальноприйняті імена змінних, а розбирати ми будемо зірочки перед ними.
def function(value, *args, **kwargs):
print(value)
print(args)
print(kwargs)
function(42, 'text', 12345, [1, 2, 3], pi=3.14, name='Adrian')
# 42
# ('text', 12345, [1, 2, 3])
# {'pi': 3.14, 'name': 'Adrian}
В даному прикладі функція приймає обов’язковий аргумент value
, а інших аргументів вона ніби не чекає. Тоді *args
пакує всі неіменовані аргументи в кортеж, а **kwargs
— всі іменовані у словник.
Конструкція з *args
, **kwargs
виходить досить корисною, якщо ми не знаємо, хто і в яких цілях буде використовувати нашу функцію. Тобто, ми можемо запхати в аргументи практично будь-що.
#args #kwargs // #practice // Архів книг