You are currently viewing Функции первого класса в Python

Функции первого класса в Python

Объекты первого класса в языке обрабатываются равномерно во всем. Они могут храниться в структурах данных, передаваться в качестве аргументов или использоваться в структурах управления. Считается, что язык программирования поддерживает первоклассные функции, если он рассматривает функции как первоклассные объекты. 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