Объекты первого класса в языке обрабатываются равномерно во всем. Они могут храниться в структурах данных, передаваться в качестве аргументов или использоваться в структурах управления. Считается, что язык программирования поддерживает первоклассные функции, если он рассматривает функции как первоклассные объекты. Python поддерживает концепцию функций первого класса.
Свойства функций первого класса:
- Функция-это экземпляр типа объекта.
- Вы можете сохранить функцию в переменной.
- Вы можете передать функцию в качестве параметра другой функции.
- Вы можете вернуть функцию из функции.
- Вы можете хранить их в структурах данных, таких как хэш-таблицы, списки, …
1. Функции являются объектами: функции Python являются объектами первого класса. В приведенном ниже примере мы присваиваем функцию переменной. Это назначение не вызывает функцию. Он берет объект функции, на который ссылается shout, и создает второе имя, указывающее на него, yell.
# Python program to illustrate functions
# can be treated as objects
def shout(text):
return text.upper()
print (shout('Hello'))
yell = shout
print (yell('Hello'))
Выход:
HELLO
HELLO
2. Функции могут передаваться в качестве аргументов другим функциям: Поскольку функции являются объектами, мы можем передавать их в качестве аргументов другим функциям. Функции, которые могут принимать другие функции в качестве аргументов, также называются функциями более высокого порядка. В приведенном ниже примере мы создали функцию приветствовать который принимает функцию в качестве аргумента.
# Python program to illustrate functions
# can be passed as arguments to other functions
def shout(text):
return text.upper()
def whisper(text):
return text.lower()
def greet(func):
# storing the function in a variable
greeting = func("""Hi, I am created by a function
passed as an argument.""")
print (greeting)
greet(shout)
greet(whisper)
Выход:
HI, I AM CREATED BY A FUNCTION PASSED AS AN ARGUMENT.
hi, i am created by a function passed as an argument.
3. Функции могут возвращать другую функцию: Поскольку функции являются объектами, мы можем возвращать функцию из другой функции. В приведенном ниже примере функция create_adder возвращает функцию сумматора.
# Python program to illustrate functions
# Functions can return another function
def create_adder(x):
def adder(y):
return x+y
return adder
add_15 = create_adder(15)
print (add_15(10))
Выход:
25