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

最新文章

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

热门文章

  1. 线程概要 Java
  2. 比较旧的写法:验证车牌、手机号、电话、qq等
  3. [ActionScript 3.0] AS3 ServerSocket示例(官方示例)
  4. python学习笔记1.3
  5. HTML中title前面小图标和网站收藏现实的图标
  6. linux ssh 上传 文件
  7. Linux and Shell 实用命令
  8. Removable Storage Devices文件夹删除方法
  9. VUE安装步骤1
  10. Python - 购物车代码 (账户登陆,用户个人清单存取,重要信息高亮显示)