最近用python写一个导数据的脚本,发现两个python的问题,新手可能容易出错。
1. dict默认参数
看代码:
>>> def test(d={}):
... print d
... d['z'] = 'z'
>>> test({'a':'a'})
{'a': 'a'}
>>>
>>> test()
{}
>>> test()
{'z': 'z'}
发现函数体内对默认参数的复制,会影响下一次的调用。
解决办法一:不用空的dict,用None
>>> def test(d=None):
... if not d:
... d = {}
... # do something
... print d
... d['z'] = 'z'
解决办法二:用keyword
>>> def test(**d):
... print d
... d['z'] = 'z'
2. python2.5不支持返回unicode的dict