Возврат функции в Python

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

Пример 1

В следующей программе мы определяем две функции: function1() и function2(), при этом первая возвращает вторую, как возвращаемое значение.

def function1():
    return function2

def function2():
    print('Function 2')

x = function1()
x()

Вывод:

Function 2

Примечание. Function в круглых скобках вызывает функцию, а Function без скобок возвращает ссылку на нее.

Теперь давайте разберемся, как выполняется эта программа. Ниже приведено пошаговое выполнение вышеуказанной программы:

  1. Определите function1().
  2. Определите function2().
  3. Вызовите function1().
  4. Ссылка на function 2 возвращается из function 1. Обратите внимание, что функция 2 упоминается без скобок. Мы возвращаем ссылку на нее, а не вызываем.
  5. Назначьте возвращаемую ссылку на функцию x.
  6. x() вызывает функцию, назначенную x.
  7. Выполните оператор print() внутри function2().

Пример 2

Теперь мы посмотрим на пример калькулятора, в котором мы определяем такие функции, как add(), subtract, multiply().

def add(a, b):
    return a + b

def subtract(a, b):
    return a - b

def multiply(a, b):
    return a * b

def getArithmeticOperation(operation):
    if operation==1:
        return add
    elif operation==2:
        return subtract
    elif operation==3:
        return multiply

while True:
    print('Arithmetic Operations')
    print('1. Addition')
    print('2. Subtraction')
    print('3. Multiplication')
    print('0. Exit')
    operation = int(input('Enter the arithmetic operation : '))
    if(operation==0):
        break
    func = getArithmeticOperation(operation)
    a = int(input('Enter a : '))
    b = int(input('Enter b : '))
    result = func(a, b)
    print('The result is :', result)

Вывод:

Arithmetic Operations
1. Addition
2. Subtraction
3. Multiplication
0. Exit
Enter the arithmetic operation : 1
Enter a : 58
Enter b : 4
The result is : 62

getArithmeticOperation() возвращает функцию на основе значения ее аргумента.

Резюме

В этом руководстве Python мы узнали, как вернуть функцию с помощью примеров.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *