Python为何不能用可变对象作为默认参数的值

时间:2021-01-21 18:30:51
【文件属性】:
文件名称:Python为何不能用可变对象作为默认参数的值
文件大小:134KB
文件格式:PDF
更新时间:2021-01-21 18:30:51
matlab函数 num numbers 先来看一道题目: >>> def func(numbers=[], num=1): ... numbers.append(num) ... return numbers >>> func() [1] >>> func() [1, 1] >>> func() [1, 1, 1] 我们似乎发现了一个Bug,每次用相同的方式调用函数 func() 时,返回结果竟然不一样,而且每次返回的列表在不断地变长。 >>> id(func()) 4330472840 >>> id(func()) 4330472840 从上面可以看出,函数的返回值其实是同一个列表对象,因为他们的id值是一样的,只不过是列表中

网友评论