本文是《Python基础教程(第2版 修订版)》第 6 章 抽象 的笔记,简要介绍了Python中函数创建、函数的参数、作用域和函数式编程等内容。
1. Create Functions
一般来说,内建的函数可以判断函数是否可调用。但在Python3中不再可用,需要使用代替.
文档字符串:在函数开头写下字符串,便会作为函数的一部分进行存储。是函数的属性,可以通过其对文档字符串进行访问。内建的函数可以在交互式解释器中使用。
没有语句或者有但没有跟任何值的函数不返回值。此时,语句只起到结束函数的作用。
2. Parameters
当参数是字符串、数字和元组等不可变的,即只能被新的值覆盖时,函数内部把参数赋值的时候,函数外的变量不会发生改变。
当参数是可变的数据结构,如列表、字典的时候,函数外的参数也会发生改变。
关键字参数:使用参数名提供的参数。其作用在于可以明确每个参数的作用,同时可以提供默认值。
只要把位置参数放置在关键字参数前就可以联合使用。一般来说,只有在强制要求的参数个数比可修改的具有默认值的参数个数少的时候,才考虑混合使用。
通过收集其余的参数的方式可以方便用户提供任意数量的参数。收集剩余的位置参数,收集剩余的关键字参数
参数收集的逆过程:
3. Scoping
除全局作用域外,每个函数调用都会创建一个新的作用域。
如果全局变量和局部变量同名,则全局变量会被局部变量屏蔽。可以使用函数获取全局变量值,该函数的近亲是,它可以返回全局变量的字典(返回局部变量的字典)
嵌套作用域。Python的函数可以嵌套的,即可以将一个函数放在另一个里面。例如需要一个函数创建另一个:
返回的是函数本身,并没有被调用。同时返回的函数还可以访问它定义所在的作用域。每次调用外层函数,内部的函数会被重新绑定。这种存储子封闭作用域的行为叫做闭包。
外部作用域的变量一般来说是不能进行重新赋值的。但在Python3中关键字可以让用户对外部作用域的变量进行赋值。
4. 函数式编程
: 函数可以将序列中的元素全部传递给一个函数。
: 函数可以基于一个返回布尔值的函数对元素进行过滤。
: 该函数会将序列给定的前两个元素与给定的函数联合使用,并且将它的返回值和下一个元素继续联合使用,直到整个序列都处理完毕,并且得到一个最终结果。
领取专属 10元无门槛券
私享最新 技术干货