Загружаем изображение…

♾️ Бесконечные аргументы: Магия Звездочек



Замечали, что в функцию 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
Просмотры: 8 589
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти