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
  • ‘Чистий код’ Роберта С. Мартіна, для принципів написання чистих функцій.
  • ‘Рефакторинг: Удосконалення дизайну існуючого коду’ Мартіна Фаулера, що включає приклади організації коду.