def f(args=[]):
... print id(args)
... args.append(0)
... print args
调用情况如下:
>>> f()
21373376
[0]
>>> f()
21373376
[0, 0]
>>> f([])
21373336
[0]
>>> f([])
21373896
[0]
>>> f([1])
21373256
[1, 0]
>>> f([1])
21373536
[1, 0]
>>> f([1])
21373496
[1, 0]
现象:
无参数时,用同一个地址
有参数时,则地址不一样