Python中的First Class函数介绍和用法

2021年3月12日12:57:05 发表评论 839 次浏览

First Class

语言中的对象始终要统一处理。它们可以存储在数据结构中, 可以作为参数传递, 也可以在控制结构中使用。如果一种编程语言将函数视为一流的对象, 则称其支持一流的功能。 Python支持First Class函数的概念。

一级函数的属性:

  • 函数是对象类型的实例。
  • 你可以将函数存储在变量中。
  • 你可以将该函数作为参数传递给另一个函数。
  • 你可以从函数返回函数。
  • 你可以将它们存储在哈希表, 列表等数据结构中。

举例说明Python中的First Class函数

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

如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。

注意怪胎!巩固你的基础Python编程基础课程和学习基础知识。

首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: