*args, **qwargs

У функцію в Python можна передати змінну кількість аргументів двома способами:

  • *args - для неіменованих аргументів; (arguments).

  • **kwargs - для іменованих аргументів (keyword arguments).

Ми використовуємо *args і **kwargs як аргумент, коли завчасно невідомо, скільки значень ми захочемо передати функції.

Приклад функції, яка цікава тим, що один її параметр може приймати як рядок, так і список або словник

Приклад з *args:

def adder(*nums):
    sum = 0

    for n in nums:
        sum += n

    print("Sum: ", sum)

adder(3, 5)
adder(4, 5, 6, 7)
adder(1, 2, 3, 5, 6)
Sum: 8
Sum: 22
Sum: 17

Приклад з **kwargs:

Ми отримаємо наступне:

  • *args і **kwargs — спеціальний синтаксис, що дозволяє передавати змінну кількість аргументів у функцію. При цьому зовсім не обов’язково використовувати саме такі імена аргументів: 'args' і 'kwargs';

  • *args використовується для неіменованих аргументів, з якими можна працювати як зі списком;

  • **kwargs використовується для іменованих аргументів, з якими можна працювати як зі словником;

  • якщо ви хочете використовувати і *args, і **kwargs, це робиться так: func(fargs, *args, **kwargs), порядок аргументів є важливим;

Приклад функції, яка цікава…

… тим, що один її параметр може приймати як рядок, так і список або словник і в залежності від цього обробляє передані дані

Last updated