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 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()可以固定某些参数
九、将单方法的类转换成方法
可以被一个简单的函数代替
十、带额外状态信息的回调函数
十一、访问闭包中定义的变量
编写访问函数
一、可接收任意数量参数的函数
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()可以固定某些参数
九、将单方法的类转换成方法
可以被一个简单的函数代替
十、带额外状态信息的回调函数
十一、访问闭包中定义的变量
编写访问函数
相关文章推荐
- Python cookbook进阶学习-元编程(一)
- python cookbook第三版学习笔记九:函数
- python cookbook第三版学习笔记十二:类和对象(三)创建新的类或实例属性
- Python Cookbook学习记录 ch2_2_2013/10/27
- Python Cookbook学习记录 ch2_6/7/8_2013/10/27
- python cookbook第三版学习笔记十四:类和对象(五)代理类以及内存回收
- 基于《PythonCookbook》的学习(6)——以不区分大小写的方式对文本做查找和替换
- Python进阶学习笔记——函数式编程之高阶函数
- Python Cookbook学习记录 ch3_10/11_2013/10/30
- python cookbook第三版学习笔记三:列表以及字符串
- Python Cookbook学习记录 ch4_6/7_2013/11/2
- Python Cookbook学习记录 ch1_1_2013/10/20
- Python Cookbook学习记录 ch6_3_2013/11/7
- Python Cookbook学习记录 ch1_4_2013/10/22
- Python Cookbook学习记录 ch1_10_2013/10/23
- Python Cookbook学习记录 ch1_12_2013/10/24
- python cookbook第三版学习笔记二:字典
- Python Cookbook学习记录 ch2_3_2013/10/27
- Python Cookbook学习记录 ch2_4/5_2013/10/27
- python cookbook第三版学习笔记十一:类和对象(二)调用父类的方法