TGViewer
Python академия Python академия @pythonofff · 7.14K subscribers
Post #3511 1.38K
♾️ Бесконечные аргументы: Магия Звездочек

Замечали, что в функцию 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

Используйте это, чтобы писать гибкий код, который не нужно переписывать при каждом новом параметре! 😉

📲 Мы в MAX

Подписывайтесь на канал 👉@pythonofff
  • ❤ 7
  • 👍 4
More from @pythonofff
  1. Sep 24, 2026Анонимные функции Часто функции нужны только один раз, причем короткие. И избыточно создав…
  2. Sep 23, 2026Бесконечные списки Мы уже рассказывали про важность копирования списков. Но именно из-за т…
  3. Sep 21, 2026Заглушки Для создания пустых функций и классов есть сразу два способа соответствующих прав…
  4. Sep 20, 2026Параметры функции *args, **kwargs Думаю, многие хоть раз видели такую запись, сейчас мы уз…
  5. Sep 18, 2026В одну строчку Python гибкий язык и позволяет многое сделать в одну строчку. К примеру, ма…
  6. Sep 16, 2026Распаковка Неудобно каждый раз для вывода объединять строки через join() или тем более как…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →