流畅的python和cookbook学习笔记(八)
2024-08-25 15:11:37
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
最新文章
- CPU cache
- 多版本Python管理及Python连接MySQL
- 进程状态转换、CPU调度算法
- H5 canvas绘制出现模糊的问题
- APICloud请你看英特尔智能硬件大赛决赛直播
- iOS图片攻略之:有3x自动生成2x 1x图片
- 使用 Attribute +反射 来对两个类之间动态赋值
- 关于jquery选择器中:first和:first-child和:first-of-type的区别及:nth-child()和:nth-of-type()的区别
- 解决https证书验证不通过的问题
- elastic search 学习 一
- Android Studio 升级到3.0 提示 java.lang.NoClassDefFoundError
- Improved dual-mode compressive tracking integrating balanced colour and texture features
- ROS中遇到的一些问题和解决(更新)
- Linux下SVN配置hook经验总结
- 【LOJ】#2511. 「BJOI2018」双人猜数游戏
- centos7.2使用rpm安装jdk8
- C语言EOF是什么?
- Python学习笔记_二维数组的查找判断
- ng 通过factory方法来创建一个心跳服务
- Hihocoder1081 最短路径 结构体练习