流畅的python和cookbook学习笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了流畅的python和cookbook学习笔记相关的知识,希望对你有一定的参考价值。

1.函数的默认参数必须不可变

  如果函数的默认参数为可变的对象,那么默认参数在函数外被修改也会影响到函数本身的。

>>> def spam(a, b=None):  # b要为不可变参数,不能使用空列表 [] 等可变参数
...     if b is None:
...         b = []
...

 

2.匿名函数

  1.想不出函数名时,或想要一种短小的操作,可以使用匿名函数

>>> sum = lambda x, y: x + y
>>> sum(2, 3)
5
>>> def sum(x, y):   # 上面的匿名函数,相当于这个函数
...     print(x + y)
...
>>> sum(3, 4)
7

  2.匿名函数中的绑定变量

>>> x = 10
>>> a = lambda y: x + y
>>> x =20
>>> b = lambda y: x +y
>>> a(5)   # 发现不是期望的15,因为x被改变了
25
>>> b(5)
25
>>> x = 25
>>> a = lambda y, x=x: x + y  # 在定义时绑定x,x就为局部变量了,不受x改变的影响
>>> b = lambda y, x=x: x + y
>>> a(5)
30
>>> b(5)
20

 

以上是关于流畅的python和cookbook学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

流畅的python和cookbook学习笔记

流畅的python和cookbook学习笔记

流畅的python和cookbook学习笔记

流畅的python和cookbook学习笔记

Python Cookbook学习笔记

python cookbook第三版学习笔记九:函数