1. 程式人生 > >流暢的python和cookbook學習筆記(八)

流暢的python和cookbook學習筆記(八)

不可變 pri 列表 改變 如果 book 影響 color print

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學習筆記(八)