标签:也会 def 必须 bsp div lambda [] 默认参数 不可变
如果函数的默认参数为可变的对象,那么默认参数在函数外被修改也会影响到函数本身的。
>>> def spam(a, b=None): # b要为不可变参数,不能使用空列表 [] 等可变参数 ... if b is None: ... b = [] ...
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
标签:也会 def 必须 bsp div lambda [] 默认参数 不可变
原文地址:http://www.cnblogs.com/zt19994/p/7507278.html