
♾️ Бесконечные аргументы: Магия Звездочек
Замечали, что в функцию print() можно передать сколько угодно значений?
print(1, "a", [1,2], True) - и она не ломается!
Как сделать такую же всеядную функцию самому? Нам понадобятся операторы распаковки: * и **.
📦 1. *args (Позиционные аргументы)
Если поставить одну звездочку перед именем аргумента (обычно называют args), Python соберет все переданные значения в кортеж (tuple).
def sum_all(*args):
# args превратится в (1, 2, 3, 4, 5)
print(f"Тип: {type(args)}")
return sum(args)
print(sum_all(1, 2, 3, 4, 5))
# Вывод: 15
Теперь ваша функция может принимать хоть 0, хоть 100 чисел!
🗝️ 2. **kwargs (Именованные аргументы)
Две звездочки (обычно kwargs - keyword arguments) собирают всё в словарь (dict). Это идеально для настроек или сложных объектов.
def create_profile(**kwargs):
# kwargs превратится в {'name': 'Alex', 'age': 25}
for key, value in kwargs.items():
print(f"{key}: {value}")
create_profile(name="Alex", age=25, city="Minsk")
🔄 Обратная магия: Распаковка
Звездочки работают и "на выход"! Если у вас есть список, и вы хотите передать его содержимое как отдельные аргументы:
numbers = [1, 2, 3]
# Вместо print(numbers[0], numbers[1], numbers[2])
# Пишем просто:
print(*numbers)
# Вывод: 1 2 3
⚠️ Важно: Порядок в определении функции строгий!
1. Обычные аргументы (a, b)
2. *args
3. **kwargs
Используйте это, чтобы писать гибкий код, который не нужно переписывать при каждом новом параметре! 😉
Подписывайтесь на канал 👉 @python_of Если у вас установлено приложение,
вы можете сразу перейти в канал