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
Поглиблений огляд
У давні часи, коли програми були простими, можна було обійтися просто списком інструкцій. Але коли програмне забезпечення стало складнішим, розробники зрозуміли, що вони переписують один і той же код знову і знову. Вітаємо, функції — повторно використовувані блоки коду, які виконують одну дію.
Альтернативи функціям включають класи (об’єднання функцій з даними, на які вони впливають) та вбудований код (інтелект там, де вам це потрібно, але ризиковано для складних завдань). У плані реалізації хитрість полягає не просто у створенні функцій, а в тому, щоб вони добре робили одну річ - подумайте про принцип єдиної відповідальності. Функції також, як ідеал, повинні бути безстанові, що означає відсутність сюрпризів з даними, що надходять або виходять.
Дивіться також
- Офіційні пітонівські туторіали з функцій: https://docs.python.org/3/tutorial/controlflow.html#defining-functions
- ‘Чистий код’ Роберта С. Мартіна, для принципів написання чистих функцій.
- ‘Рефакторинг: Удосконалення дизайну існуючого коду’ Мартіна Фаулера, що включає приклади організації коду.