7.1 Создание функций
В Python создание функций является фундаментальным аспектом программирования, позволяющим коду быть более модульным, повторно используемым и читаемым. Функции в Python определяются с помощью ключевого слова def, за которым следует имя функции и круглые скобки с параметрами.
Вы всегда можете думать о функции как о наборе команд, который объединили в группу и дали этой группе имя. Общий вид объявления функции имеет следующий вид:
def имя(параметры):
команда1
команда2
командаN
Простейшая функция в Python может выглядеть так:
def greet():
print("Hello, World!")
Вызов функции осуществляется путем написания её имени с круглыми скобками:
greet() # Выведет: Hello, World!
Вызов функции эквивалентен тому, чтобы написать её внутренний код в месте вызова. Вместо того чтобы писать одинаковый код снова и снова, его можно вынести в отдельные блоки и дать им имя.
7.2 Передача аргументов в функцию
Работать с функциями было бы не так интересно, если бы они всё время делали одно и то же — просто поименованный блок команд и всё. Вместо этого функциям сразу же придумали параметры — переменные, через которые в функцию можно передавать различные значения.
Переменные внутри функции называются параметрами функции. А значения, которые в них передаются при конкретном вызове, — аргументами функции. Параметры функции просто получают значения аргументов.
def greet(name):
print("Hello,", name)
greet("Alice") # Выведет: Hello, Alice!
Пример функции с двумя аргументами:
def print_sum(a, b):
print(f"Сумма {a} и {b} равна {a + b}")
print_sum(10, 15) # Выведет: Сумма 10 и 15 равна 25
Ну и, конечно, в качестве аргументов можно передавать целые выражения:
def print_sum(a, b):
print(f"Сумма {a} и {b} равна {a + b}")
print_sum(10*10-123, 15//2) # Выведет: Сумма -23 и 7 равна -16
Полезно! Для любителей C/C++ — все переменные в Python — это ссылки с точки зрения C++. Параметры функции тоже. При присваивании значение никогда не копируется и не дублируется — всегда присваивается только ссылка.
7.3 Функция — это объект
В Python функции являются объектами первого класса, что означает, что они могут быть использованы как любые другие объекты. Это дает разработчикам мощный инструментарий для создания гибких программных решений.
Функции как объекты
Как объекты первого класса, функции в Python могут быть:
- Присвоены переменной
- Переданы как аргументы другим функциям
- Возвращены из других функций
- Включены в структуры данных, такие как списки, словари
Примеры:
def shout(text):
return text.upper()
yell = shout
def greet(func):
greeting = func("Hello") # вызываем функцию
print(greeting)
greet(shout)
В будущем мы ещё не раз коснёмся этой темы, а пока запомните — всё в Python является объектом. Функции, классы, ошибки, списки, модули — всё.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ