Chinaunix首页 | 论坛 | 博客
  • 博客访问: 141162
  • 博文数量: 30
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 300
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-07 10:53
文章分类

全部博文(30)

文章存档

2009年(1)

2008年(29)

我的朋友

分类: Python/Ruby

2008-08-05 18:21:08

函数默认参数相关
默认值只被赋值一次:后续都采用第一次调用时的赋值。哪怕期间又给默认值参数传递了其他参数。
所以当默认值是一个可变对象时就很容易出错:可变对象是指list、dictionary、大多类的实例,而不包括tuple。

def test(item, coll = []):
    coll.append(item)
    print coll
    return coll

if __name__ == '__main__':
    coll = test(1) # [1]
    coll = test(2, []) # [2]
    test(5) # [1, 5]

阅读(988) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~