Как вызвать функцию в Python?

Как известно, функции — это блоки инструкций, предназначенные для выполнения определенных задач в программировании. Функции позволяют разбивать большие фрагменты кода на более мелкие отрезки или модули. Позже их можно вызывать отовсюду. Это позволяет повторно использовать определенные части программы и избегать повторений. Функции можно определять внутри классов, модулей, вложенных функций и так далее.

Основные особенности функций в Python:

  • Используются чтобы избегать повторений в коде,
  • Используются для разделения кода на мелкие модули
  • Позволяют скрывать код и создавать ясность для понимания модулей,
  • Позволяют повторно использовать код и сохранять память,
  • Код из функции можно выполнить только по ее имени,
  • Простой синтаксис: def имя_функции(параметры):.

Правила создания функций:

  1. Для объявления функции в Python используется ключевое слово def.
  2. Название функции должно начинаться с символа латинского алфавита в любом регистре или нижнего подчеркивания.
  3. В каждой функции есть двоеточие и отступ, после которого записывается сам код программы.
  4. Зарезервированные ключевые слова не могут использоваться в качестве названия функции.
  5. Функция может содержать несколько параметров или не иметь их совсем.

Создание функции в Python

Для создания нужно написать ключевое слово def. Синтаксис следующий:

def function_name():
    # логика функции
    return result # возврат значения

Создадим и вызовем реальную функцию в Python:

def my_fun():
    print("Как вызвать функцию в Python?")


my_fun()  # вызов функции

Вывод: Как вызвать функцию в Python?.

Вызов функции в Python

После создания функции ее можно вызвать, написав имя или присвоив ее переменной:

def my_fun():
    x = 22 ** 5
    return x

# 1. Вызов функции
my_fun()
# 2. Вызов функции и присвоение результат переменной
a = my_fun()
# 3. Вызов функции и вывод результат в консоль
print(my_fun())

Создадим простую функцию, которая ничего не возвращает и вызовем ее.

def my_fun():  
    print("Hello World")  
    print("Функция вызвана")  
  
my_fun()

Вывод:

Hello World
Функция вызвана

В этом примере вызов функции my_fun() привел к выводу двух строк.

Вызов вложенных функций в Python

Одна функция внутри другой — это вложенные функции. Создавать вложенные функции можно с помощью того же ключевого слова def. После создания функции нужно вызвать как внешнюю, так и внутреннюю. Создадим программу, чтобы разобраться с этим на примере.

def out_fun():
    print("Привет, это внешняя функция")  
      
    def in_fun():
        print("Привет, это внутренняя функция")  
    in_fun() 
  
out_fun()

Вывод:

Привет, это внешняя функция
Привет, это внутренняя функция

Здесь функция in_fun() определена внутри out_fun(). Для вызова in_fun() нужно сперва вызвать out_fun(). После этого out_fun() начнет выполняться, что приведет к вызову in_fun().

Внутренняя функция не будет выполняться, если не вызвать внешнюю.

Еще один пример. Программа для вывода результата сложения двух чисел с помощью вложенных функций в Python.

def fun1():
    a = 6
    
    def fun2(b):
        a = 4
        print ("Сумма внутренней функции", a + b)
    
    print("Значение внешней переменной a", a)
    fun2(4)

fun1()

Вывод:

Значение внешней переменной a 6
Сумма внутренней функции 8

Функции как объекты первого класса

В Python функции — это объекты первого класса. У них есть те же свойства и методы, что и обычных объектов. Так, функцию можно присвоить переменной, передать ее в качестве аргумента, сохранить в структуре данных и вернуть в качестве результата работы другой функции. Все данные в Python представлены в качестве объектов или отношений.

Особенности функций как объектов первого класса:

  1. Функции можно присваивать переменным.
  2. Функция может быть примером объекта.
  3. Функцию можно вернуть из функции.
  4. У функций те же свойства и методы, что и у объектов.
  5. Функцию можно передать в качестве аргумента при вызове другой функции.

Разберем на примере:

def my_object(text):
    return text.upper()  
  

print(my_object("Вызов my_object"))  
  
upper = my_object  
print(upper("Вызов upper"))  

Вывод:

ВЫЗОВ MY_OBJECT
ВЫЗОВ UPPER

Напишем программу для вызова функции в классе (точнее, это будет метод класса).

class Student:  
    no = 101  
    name = "Владимир"
    
    def show(self):  
        print("№ {}\nИмя {}".format(self.no, self.name))  
  
stud = Student()
stud.show()

Вывод:

№ 101
Имя Владимир

Обучение с трудоустройством

Профессия Python-разработчик

Профессия Python-разработчик

7 820 4 692 ₽/мес.
Профессия Data Scientist

Профессия Data Scientist

11 520 6 912 ₽/мес.
Профессия Python Fullstack

Профессия Python Fullstack

7 820 4 692 ₽/мес.
Профессия Data Science: Аналитик

Профессия Data Science: Аналитик

6 600 3 960 ₽/мес.

Появились вопросы? Задайте на Яндекс.Кью

У сайта есть сообщество на Кью >> Python Q <<. Там я, эксперты и участники отвечаем на вопросы по python и программированию.