教程-Python函数的高级用法

简述

在 Python 中,函数是一个一等公民(first-class citizen)。这意味着,函数与任何其他对象(例如:整数、字符串、列表)一致,既可以动态地创建或销毁,也可以传递给其他函数,或作为值进行返回。

将函数绑定到不同的名称

Python 中的一切皆对象,我们定义的名称仅仅是与这些对象绑定的标识符。函数也不例外,它们也是对象,同样可以被绑定到不同的名称。

可以看出,greet 和 f 指的是同一个函数对象。

注意: 函数名在不带小括号(())时,表示的是函数的内存地址。

将函数作为参数

在 Python 中,将其他函数作为参数的函数称为高阶函数。如果使用过 map()、filter() 和 reduce() 之类的函数,那么肯定知道这一点。

下面,我们定义三个函数:add() - 求和,subtract() - 求差,operate() - 作为高阶函数。

函数调用很简单:

这样,就可以将函数对象 add 和 subtract 当做 operate() 的参数进行传递了,使用起来非常方便。

将函数作为返回值

函数是一个对象,所以可以作为某个函数的返回值。

来看一个简单的求和函数,对数字 1- n 相加:

当每次调用封闭函数时,都会创建一个嵌套函数的新实例:

显然,f 和 f2 不同,这是因为 inner() 是在执行 outer() 期间被定义的,所以第二次的创建对第一次没有影响。

当调用 f(n) 时,才会真正地计算求和结果:

学会了吗?希望对你有帮助?

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181005A1IKTP00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券