Back to questions
Junior — Middle
72
Объясните предназначение операторов * и ** в Python и как их применять в функциях
Companies where asked
Бергман Инфотех
Answer from AI
sobes.tech AI
В Python операторы * и ** используются для распаковки аргументов при вызове функций и для сбора аргументов при их определении.
- В определении функции:
*argsсобирает позиционные аргументы в кортеж.**kwargsсобирает именованные аргументы в словарь.
def func(*args, **kwargs):
print('args:', args)
print('kwargs:', kwargs)
func(1, 2, a=3, b=4)
# args: (1, 2)
# kwargs: {'a': 3, 'b': 4}
- При вызове функции:
*распаковывает итерируемый объект в позиционные аргументы.**распаковывает словарь в именованные аргументы.
def greet(name, age):
print(f'Hello, {name}. You are {age} years old.')
args = ('Alice', 30)
kwargs = {'name': 'Bob', 'age': 25}
greet(*args) # Hello, Alice. You are 30 years old.
greet(**kwargs) # Hello, Bob. You are 25 years old.
Таким образом, * и ** обеспечивают гибкость при работе с аргументами функций.