Python академия
@python_of
Фото ♾️ Бесконечные аргументы: Магия Звездочек Замечали, что в функцию 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
Если у вас установлено приложение,
вы можете сразу перейти в канал