*args и **kwargs позволяют функциям принимать переменное количество аргументов, делая их более гибкими и переиспользуемыми без необходимости явно определять каждый параметр.
*args*args собирает любые дополнительные позиционные аргументы, переданные функции, в кортеж.
def greet(*args):
for name in args:
print(f"Hello, {name}")
greet("Alice", "Bob", "Charlie")
**kwargs**kwargs собирает любые дополнительные именованные аргументы в словарь.
def display_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
display_info(name="Alice", age=30)
Ты можешь комбинировать *args и **kwargs в одном определении функции:
def example(*args, **kwargs):
print(args) # кортеж
print(kwargs) # словарь
*args должен всегда идти перед **kwargs*args → собирает позиционные аргументы в tuple**kwargs → собирает именованные аргументы в dict* и **Параметр *args собирает позиционные аргументы в кортеж, а **kwargs собирает именованные аргументы в словарь.
Новый — ещё не проверен сообществом
Вы