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
时间: 2024-10-13 20:28:55