流暢的python和cookbook學習筆記(八)
阿新 • • 發佈:2017-09-11
不可變 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學習筆記(八)