一等函数也被称为一等对象,在 Python 中,函数是一等对象。编程语言理论家把“一等对象”定义为满 足下述条件的程序实体:
在运行时创建 能赋值给变量或数据结构中的元素。
能作为参数传给函数。
能作为函数的返回结果。
高级函数
接受函数为参数,或者把函数作为结果返回的函数是高阶函数。
匿名函数
lambda 关键字在 Python 表达式内创建匿名函数。
lambda表达式的用法可以归纳为:
lambda (参数列表):(参数表达式,返回表达式运算值)。
在python中,匿名函数大部分的用途是作为高级函数的参数传入。
可调用对象
除了用户定义的函数,调用运算符(即 ())还可以应用到其他对象 上。如果想判断对象能否调用,可以使用内置的 callable() 函数。Python 数据模型文档列出了 7 种可调用对象。
调用类时会运行类的 __new__ 方法创建一个实例,然后运行 __init__ 方法,初始化实例,最后把实例返回给调用方。因为 Python 没有 new 运算符,所以调用类相当于调用函数。(通常,调用类会创建 那个类的实例,不过覆盖 __new__ 方法的话,也可能出现其他行为。)
如果类定义了 __call__ 方法,那么它的实例可以作为函数调用。
不仅 Python 函数是真正的对象,任何 Python 对象都可以表现得像函 数。为此,只需实现实例方法 __call__。
定位参数
调用函数时使用 * 和 **“展开”可迭代对象,映射到单个参 数。
在定义函数参数时,*表示第一个参数后的任意个参数会被捕捉到一个元组中,**表示字典中的所有元素作为参数传入,同名键会绑定到对应的具名参数上面,余下的被**捕获。
函数注解
函数声明中的各个参数可以在 : 之后增加注解表达式。如果参数有默认 值,注解放在参数名和 = 号之间。如果想注解返回值,在 ) 和函数声明 末尾的 : 之间添加 -> 和一个表达式。那个表达式可以是任何类型。注 解中最常用的类型是类(如 str 或 int)和字符串(如 'int > 0')。
例如:
def clip(text:str, max_len:'int > 0'=80) -> str:
......
喜欢扫码关注