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

Всякий раз, когда эта функция вызывается с одним первым параметром, параметр 1st будет ссылаться на список, созданный как значение по умолчанию вместе с функцией - то есть при каждом таком вызове новый список создаваться не будет. Как правило, это не совсем то, что нам хотелось бы - мы ожидаем, что каждый раз, когда функция вызывается без второго аргумента, будет создаваться новый пустой список. Здесь, всякий раз, когда функция вызывается без второго аргумента, мы создаем новый список. А если аргумент 1st определен, используется он, как и в предыдущей версии функции.

Такой прием, основанный на использовании значения по умолчанию None и создании нового объекта, должен применяться к словарям, спискам, множествам и любым другим изменяемым типам данных, которые предполагается использовать в виде аргументов со значениями по умолчанию. Использование условного выражения позволяет сократить размер функции на одну строку для каждого параметра, имеющего изменяемое значение по умолчанию.
Навигация: 1 2 3 4
 
 
© Copyright