3 приема для определения функций в Python

3 приема для определения функций в Python

https://t.me/data_analysis_ml

Основа любого приложения — данные. Если вы создаете социальную сеть, то данными являются пользователи и их друзья. При разработке игры в качестве данных выступают графика и пользовательские операции. А в случае с интернет-магазином данными становятся информация о товаре и клиенте. И это лишь несколько примеров из повседневной жизни. 

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

В статье мы рассмотрим 3 полезных приема, которые пригодятся Python-программистам при написании функций.

Обратите внимание, что данный материал не содержит общепринятые лучшие практики определения функций, такие как продуманные имена, конкретно предусмотренные цели (а не смешанные задачи) и грамотные строки документации docstrings. Статья рассматривает вопрос с более технической точки зрения. 

Прервем потоки слов и приступим сразу к делу! 

Аргументы по умолчанию 

При идеальном раскладе функция не требует входных данных. Вызывая такую функцию, пользователи не задают никаких аргументов. Однако в большинстве случаев не обойтись без указания входных данных для выполнения намеченных операций. 

Рассмотрим способ, который упрощает вызовы функции, принимающей несколько аргументов. Речь пойдет об установке аргументов по умолчанию. Эта функциональность широко применяется в стандартной библиотеке Python. Ниже представлен пример сигнатуры вызова встроенной функции sorted:

sorted(iterable, /, *, key=None, reverse=False)

В функции параметры key и reverse имеют соответствующие значения по умолчанию: аргумент key определяет способ сортировки (None означает предустановленный лексикографический или числовой порядок), а аргумент reverse указывает на убывающий порядок. В большинстве случаев при вызове данной функции не нужно устанавливать key и reverse. Но когда требуется определить пользовательскую операцию сортировки, то аргумент key устанавливается, как показано ниже: 

>>> objects = [-1, -5, 3]
>>> sorted(objects, key=abs)
[-1, 3, -5]

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

Подсказки типов 

При использовании новой функции могут возникнуть сомнения относительно точного типа принимаемых ею аргументов. Допустим, программист определяет следующий заголовок функции: 

def greeting(person, message):
    pass



Report Page