Python:
Организация кода в функции
Как это сделать:
Допустим, вы пишете скрипт для расчета квадрата и куба числа. Без функций получается каша из повторений:
num = 4
square = num * num
cube = num * num * num
print(f"Квадрат: {square}, Куб: {cube}")
num = 5
square = num * num
cube = num * num * num
print(f"Квадрат: {square}, Куб: {cube}")
Вывод:
Квадрат: 16, Куб: 64
Квадрат: 25, Куб: 125
С функциями выглядит аккуратнее:
def square(n):
return n * n
def cube(n):
return n ** 3
num = 4
print(f"Квадрат: {square(num)}, Куб: {cube(num)}")
num = 5
print(f"Квадрат: {square(num)}, Куб: {cube(num)}")
Вывод:
Квадрат: 16, Куб: 64
Квадрат: 25, Куб: 125
Погружение
В стародавние времена, когда программы были простыми, можно было обойтись простым списком инструкций. Но по мере усложнения программного обеспечения, разработчики поняли, что они переписывают один и тот же код снова и снова. Здравствуйте, функции — переиспользуемые блоки кода, выполняющие одно действие.
Альтернативы функциям включают классы (объединение функций с данными, на которых они оперируют) и встраиваемый код (интеллект там, где он нужен, но рискованный для сложных задач). С точки зрения реализации, хитрость не только в создании функций, но и в их способности хорошо выполнять одну задачу — подумайте о принципе единственной ответственности. Функции также идеально должны быть без состояния, что означает отсутствие сюрпризов с данными, поступающими внутрь или выходящими наружу.
Смотрите также
- Официальные руководства Python по функциям: https://docs.python.org/3/tutorial/controlflow.html#defining-functions
- “Чистый код” Роберта Мартина, принципы написания аккуратных функций.
- “Рефакторинг: Улучшение проекта существующего кода” Мартина Фаулера, который включает примеры организации кода.