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

时间:2024-02-11 12:17:31
【文件属性】:

文件名称:Python为何不能用可变对象作为默认参数的值

文件大小:134KB

文件格式:PDF

更新时间:2024-02-11 12:17:31

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值是一样的,只不过是列表中


网友评论