Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: две звёздочки в Питоне?
Форум на CrossPlatform.RU > Разработка > Интерпретируемые языки
Litkevich Yuriy
setup(**metadata)
Что означают эти две звёздочки?
alex977
Цитата
Синтаксис:
func(**name)

Местоположение:
Вызывающая программа

Интерпретация:
Все пары ключ/значение в указанном имени передаются как отдельные аргументы по ключевым словам

Использование символов * и ** в вызывающей программе позволяет передавать произвольное число объектов по
позиции или по ключам в виде последовательностей и словарей соответственно.

В заголовке функции при использовании простых значений соответствие определяется по позиции или по имени (в зависимости от того, как вызывающая программа передает значения), но при использовании формы name=value определяются значения по умолчанию. При использовании формы *name все дополнительные аргументы объединяются в кортеж, а при использовании формы **name - в словарь.

Наиболее часто в программном коде на языке Python используются форма передачи аргументов по ключам и по умолчанию. Возможность передачи аргументов по ключам позволяет указывать значения аргументов вместе с их именами, чтобы придать вызову функции больше смысла. Со значениями по умолчанию мы уже встречались, когда рассматривали способы передачи значений из объемлющей области видимости, но на самом деле эта форма имеет более широкую область применения - она позволяет определять необязательные аргументы и указывать значения по умолчанию в определении функции.


Марк Лутц. Изучаем Python, стр. 424-425

Или вот - Напоминалка по использованию параметров (аргументов) функций в Python
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.