Генераторы словарей и модули Рython
Функции в языке Python Функции в языке PythonВсе функции в языке Python возвращают какое-либо значение, хотя вполне возможно (и часто так и делается) просто игнорировать это значение. Возвращаемое значение может быть единственным значением или кортежем значений,...
Реализация генераторов Реализация генераторовМы рассмотрели коллекции-последовательности, tuple, collections, na-medtuple и list, поддерживающие, как и строки, возможность извлечения срезов. Также было рассмотрено использование оператора распаковывания...
Парсинг документов XML Парсинг документов XMLXML: Для парсинга документов XML широко используются два основных подхода. Один из них основан на анализе DOM (Document Object Model -объектная модель документа), а другой - на использовании SAX (Simple API for XML - упрощенный...
Копирование коллекций Копирование коллекцийКопирование коллекций: Поскольку в языке Python повсюду используются ссылки на объекты, когда выполняется оператор присваивания (=), никакого копирования данных на самом деле не происходит. Если справа от оператора находится литерал,...
Распаковывание аргументов и параметров
Распаковывание аргументов и параметров: Например, если возникает необходимость вычислить площадь треугольника, а длины всех его сторон хранятся в списке, то мы могли бы вызвать функцию так: heron(sides[0], sides[1], sides[2]), или просто распаковать список и сделать вызов намного проще: heron( sides).

Если элементов в списке (или в другой последовательности) больше, чем параметров в функции, мы можем воспользоваться операцией извлечения среза, чтобы извлечь нужное число аргументов. Мы можем также использовать оператор распаковывания последовательности в списке параметров функции. Это удобно, когда необходимо создать функцию, которая может принимать переменное число позиционных аргументов. Эта функция имеет единственный аргумент с именем args.

Наличие символа перед ним означает, что внутри функции параметр args обретает форму кортежа, значениями элементов которого будут значения переданных аргументов. Эта функция может вызываться только с позиционными аргументами, например: sum_of_powers(1, 3, 5), или как с позиционными, такие именованным аргументами, например: sum_of_powers(1, 3, 5, power=2). Допускается также использовать символ " " в качестве самостоятельного "параметра".

В данном случае он указывает, что после символа " " не может быть других позиционных параметров, однако указание именованных аргументов допускается. Ниже приводится модифицированная версия функции heron. На этот раз функция принимает точно три позиционных аргумента и один необязательный именованный аргумент. В третьем вызове мы попытались передать четыре позиционных аргумента, но оператор не позволяет этого и вызывает исключение ТуреЕггог.

Поместив оператор первым в списке параметров, мы тем самым полностью запретим использование любых позиционных аргументов и вынудим тех, кто будет вызывать ее, использовать именованные аргументы. Мы можем вызывать функцию print_setup без аргументов, допуская использование значений по умолчанию. Или изменить некоторые или все значения по умолчанию, например: print_setup(paper="A4", color= True). Но если мы попытаемся использовать позиционные аргументы, например: print_setup("A4"), будет возбуждено исключение ТуреЕггог.

Так же, как мы распаковываем последовательности для заполнения позиционных параметров, можно распаковывать и отображения -с помощью оператора распаковывания отображений ( ). В данном случае пары "ключ-значение" словаря options будут распакованы, и каждое значение будет ассоциировано с параметром, чье имя соответствует ключу этого значения. Если в словаре обнаружится ключ, не совпадающий ни с одним именем параметра, будет возбуждено исключение ТуреЕггог.
Навигация: 1 2 3 4
 
 
© Copyright