Sobes.tech
Back to questions
Middle
4

Как работает оператор * и ** в функциях?

Companies where asked
Saber Interactive

Answer from AI

sobes.tech AI

В Python оператор * в определении функции используется для сбора позиционных аргументов в кортеж, а оператор ** — для сбора именованных аргументов в словарь.

Пример:

def func(*args, **kwargs):
    print('Позиционные аргументы:', args)
    print('Именованные аргументы:', kwargs)

func(1, 2, 3, a=4, b=5)

Вывод:

Позиционные аргументы: (1, 2, 3)
Именованные аргументы: {'a': 4, 'b': 5}

Также * и ** используются при вызове функции для распаковки списков/кортежей и словарей в позиционные и именованные аргументы соответственно:

args = (1, 2)
kwargs = {'a': 3, 'b': 4}
func(*args, **kwargs)

Это позволяет гибко передавать переменное количество аргументов.