Функции
Функции упаковывают код, который ты пишешь много раз.
Зачем функции?
Что это
Функция — это именованный блок кода, который можно вызывать с разными входными данными и получать результат. Она прячет детали реализации за коротким именем и убирает повторение.
Как читается
def area(w: int, h: int) -> int:
return w * h
print(area(3, 4)) # 12
- def area(...) — объявление с именем и параметрами w, h.
- : int после параметра — аннотация типа (Python её не проверяет, но IDE и mypy помогут).
- -> int — что функция возвращает.
- return отдаёт значение наружу. Без return функция возвращает None.
Пример
def discount(price: float, percent: float) -> float:
return price * (1 - percent / 100)
print(discount(1000, 15)) # 850.0
print(discount(500, 50)) # 250.0
Когда использовать / подводные камни
👍 Если копируешь две одинаковые строки — пора в функцию. Имя функции должно говорить что она делает (area, discount), а не как.
👎 Не делай функцию на 200 строк — разбей на маленькие. И не используй изменяемые значения по умолчанию (def f(xs=[])) — список один на все вызовы и копит мусор.