第八章

第八章 函数(下)

  1. 间接调用函数
    前面调用函数时,使用函数名加参数列表的形式调用。除此之外,还可以将函数名赋值给一个变量,再通过变量名加参数列表的形式间接调用函数。
    间接调用函数有何用处?这种用法可以使一个函数作为另一个函数的参数,另外,函数名还可以作为其他数据类型的元素。
    匿名函数 匿名函数是指没有函数名称的、临时使用的微函数。它可以通过lambda表达式来声明,其语法格式如下:
    在这里插入图片描述
    使用lambda表达式声明的匿名函数也可以作为自定义函数的实参,此外,lambda表达式声明的匿名函数还可以作为内建函数的实参,
    lambda表达式表示一个匿名函数,也可以作为列表或字典的元素。
  2. 闭包
    在这里插入图片描述
    在上图中,list1作为参数传进函数f2()中,此时不能把函数f1()移到函数f2()的外面。因为函数f1()的功能是计算list中所有元素值的和,所以f1()函数必须依赖于函数f2()的参数。如果函数f1()在函数f2()外,则无法取得f2()中的数据进行计算,这就引出了闭包的概念。
    如果内层函数引用了外层函数的变量(包括其参数),并且外层函数返回内层函数名,这种函数架构称为闭包。从概念中可以得出,闭包需要满足的三个条件:
    内层函数的定义嵌套在外层函数中。
    内层函数引用外层函数的变量。
    外层函数返回内层函数名。
  3. 常用的内建函数
    在Python中,内建函数是被自动加载的,可以随时调用这些函数,不需要定义,极大地简化了编程。
    eval()函数用于对动态表达式求值
    在这里插入图片描述
    exec()函数用于动态语句的执行,其语法格式如下:
    在这里插入图片描述
    其中,source是动态语句的字符串,globals和locals是使用的上下文环境的全局变量和局部变量,如果不指定,则使用当前运行上下文。
    compile()函数用于将一个字符串编译为字节代码,其语法格式如下:
    在这里插入图片描述
    其中,source为代码语句的字符串,filename为代码文件名称,如果不是从文件读取代码,则传递一些可辨认的值,mode为指定编译代码的种类,其值可以为’exec’、‘eval’、‘single’,剩余参数一般使用默认值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值