函数是组织好的、可重复使用的、用来实现单一或相关联功能的代码段。
一、函数的定义: 若采用默认参数定义函数,调用函数时,缺省参数的值如果没有传入,则被认为是默认值: 不定长参数。加了星号(*)的变量名会存放所有未命名的变量参数。选择不多传参数也可: 所有参数(自变量)在Python里都是按引用传递。如果在函数里修改了参数,那么在调用这个函数的函数里,原始的参数也被改变了 return语句[表达式]退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None 内部函数。函数体内可以再定义函数: 二、函数变量作用域 定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。 局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中 三、Python闭包 如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure)。一个闭包就是你调用了一个函数A,这个函数A返回了一个函数B给你。这个返回的函数B就叫做闭包。你在调用函数A的时候传递的参数就是自由变量 四、匿名函数 python 使用lambda 表达式来创建匿名函数 lambda只是一个表达式,函数体比def简单很多 lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去 lambda函数拥有自己的名字空间,且不能访问自有参数列表之外或全局名字空间里的参数 虽然lambda函数看起来只能写一行,却不等同于C或C 的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率 lambda函数的语法只包含一个语句:lambda[arg1 [,arg2,.....argn]]:expression 使用如下: 五、内置函数filter的使用: 官方文档内容如下: filter(function,iterable) Construct an iterator from those elements ofiterablefor whichfunctionreturns true.iterablemay be either a sequence, a container which supports iteration, or an iterator. Iffunctionis None, the identity function is assumed, that is, all elements ofiterablethat are false are removed. function参数可传入None、函数、lambda表达式,iterable参数传入一个可迭代对象。 若function参数为None:返回可迭代对象中所有不为False的元素 若function参数为函数或lambda表达式:返回 将元素作为函数参数、函数返回值为True的元素 今日值班老师 豌豆 Linux面授班,报名优惠400元,只有10个名额 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|