通过pyhton认识一等函数


前言

作为一名python初学者,第一次接触到了一等对象、一等函数的概念,这也是与java的不同点之一。


一、什么是一等函数?

在python中函数不在局限于行为的概念了,将“将函数作为一等对象”简称为“一等函数”。一等函数需满足以下定义:

  1. 在运行时创建。
  2. 能赋值给变量或数据结构中的元素。
  3. 能作为参数在函数中进行传递。
  4. 可以作为返回结果。

其中2作为核心定义决定了函数可以作为对象将其赋值给变量,所以才有了3,4将函数作为参数或返回结果。

二、函数看为对象

从python本身出发,创建函数进行测试,检查函数的类型、赋值、参数传递等特点

1.检查类型

def func():
    pass
print(type(func))

输出:

output: <class 'function'>

可以看出函数func是python中function类的一个实列。

2.赋值及参数传递

通过验证,可知func函数作为实列,那么其"一等"特性是怎样的呢?

代码如下(示例):

def func(param):
    return param * 2

def func_box(func_param):
    return func

my_func = func_box(func) #1

print("name of my_func:  %s" % my_func.__name__)   #2
print("result: %d " % my_func(1))				   #3

输出:

name of my_func:  func
result: 2 

上述示例:

  • #1处将func作为形参对func_box调用,并将其返回结果赋值给my_func=,验证了一等函数的2、3、4特性。
  • #2处打印了my_func的name属性,探清了my_func的本质为func,验证了一等函数的赋值只是将函数实列对象的引用赋给变量,类似于Java中的引用变量。
  • #3处对my_func进行调用并输出返回结果,其函数的调用结果通过传参、返回、赋值保持不变。

总结

以上,展示了python中函数对象的“一等”本性,将函数作为function类型的实例,可以赋值给变量、传给其他函数、存储在数据结构中,以及访问函数的属性(例如name)。因此,通过一等函数的特性可以实现具有python特色的设计模式。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值