您的位置:首页 > 编程语言 > Python开发

Python cookbook进阶学习-函数

2017-09-18 17:02 302 查看
声明:本博客所有内容总结均来自书籍cookbook,详情可查阅cookbook

一、可接收任意数量参数的函数



def avg(first, *rest): return (first + sum(rest))/(1+len(rest))avg(1, 2, 3, 4, 5)# 关键字参数只能出现在最后,*参数只能出现在最后一个位置参数后,其后的参数强制关键字参数
def fun(*a, **b):
pass

def a(x, *arg, y):
pass
a(1,2,3,4,y=5)

def b(x, *arg, y, *kw):
pass
b=(1,2,3,y=3,z=1




二、只接受关键字参数的函数

# 将强制关键字参数放到某个*参数后或*后面

  

  



三、给函数参数增加元信息

帮助使用者理解函数

def add(x: int, y: int)->int: return x+y




四、返回多个值的函数

可以直接返回一个元组

def fun() return 1,2,3 #逗号生成了元组a=1,2 # a=(1,2)
五、定义有默认参数的函数

1.传递一个None值与不传值是有区别的

2.默认参数的值仅仅在函数定义时赋值一次

3.默认参数的值应该是一个不可变对象,比如None,字符串,数字,True,False,不要像这样写






最好将默认值设置为None,下面这种写法存在问题。其他的对象(如长度为0的元组,字符串等)都会被视为false






可以创建私有对象进行检测






六、定义匿名或内联函数

对于短小的函数可以采用lambda表达式

     




七、匿名函数捕获变量值

X是自由变量,运行时绑定值


    




可以定义默认参数,捕获到值

x=10a = lambda y,x=x:x+y


八、减少可调用对象的参数个数

   partial()可以固定某些参数








九、将单方法的类转换成方法






可以被一个简单的函数代替






十、带额外状态信息的回调函数






十一、访问闭包中定义的变量

编写访问函数



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: