匿名函数自我调用_一起看流畅的python:一等函数

一等函数也被称为一等对象,在 Python 中,函数是一等对象。编程语言理论家把“一等对象”定义为满 足下述条件的程序实体:

    在运行时创建 能赋值给变量或数据结构中的元素。 

    能作为参数传给函数。 

    能作为函数的返回结果。

高级函数

接受函数为参数,或者把函数作为结果返回的函数是高阶函数。

533a3670ec117b1cda575ebffe851403.png

匿名函数

    lambda 关键字在 Python 表达式内创建匿名函数。

36e9b003907be069298946b14893a549.png

    lambda表达式的用法可以归纳为:

    lambda (参数列表):(参数表达式,返回表达式运算值)。

    在python中,匿名函数大部分的用途是作为高级函数的参数传入。

可调用对象

   除了用户定义的函数,调用运算符(即 ())还可以应用到其他对象 上。如果想判断对象能否调用,可以使用内置的 callable() 函数。Python 数据模型文档列出了 7 种可调用对象。

    调用类时会运行类的 __new__ 方法创建一个实例,然后运行 __init__ 方法,初始化实例,最后把实例返回给调用方。因为 Python 没有 new 运算符,所以调用类相当于调用函数。(通常,调用类会创建 那个类的实例,不过覆盖 __new__ 方法的话,也可能出现其他行为。)

    如果类定义了 __call__ 方法,那么它的实例可以作为函数调用。

    不仅 Python 函数是真正的对象,任何 Python 对象都可以表现得像函 数。为此,只需实现实例方法 __call__。

f0ae8420db70d66119d4709e764581aa.png 5e9795cbaeb54cd644cd6c8ba321525e.png

定位参数

    调用函数时使用 * 和 **“展开”可迭代对象,映射到单个参 数。

    在定义函数参数时,*表示第一个参数后的任意个参数会被捕捉到一个元组中,**表示字典中的所有元素作为参数传入,同名键会绑定到对应的具名参数上面,余下的被**捕获。

函数注解

    函数声明中的各个参数可以在 : 之后增加注解表达式。如果参数有默认 值,注解放在参数名和 = 号之间。如果想注解返回值,在 ) 和函数声明 末尾的 : 之间添加 -> 和一个表达式。那个表达式可以是任何类型。注 解中最常用的类型是类(如 str 或 int)和字符串(如 'int > 0')。

例如:

def clip(text:str, max_len:'int > 0'=80) -> str: 

......

135983bc-4942-eb11-8da9-e4434bdf6706.svg

喜欢扫码关注

155983bc-4942-eb11-8da9-e4434bdf6706.svg ffd0ef5abc544698015e05fc1cf52c9f.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值