python函数的可变对象参数和不可变对象参数

       python中,当把一个对象作为参数传给一个函数时,对于可变对象和不可变对象是具有不同的行为的。对于可变对象来说,可以认为是将该对象的一个内存引用传给函数,对象并没有在内存中被新创建,所以函数对可变对象的操作会同时反映其他具有相同引用的变量上,因此,对于可变对象传参来说,这是需要特别注意的一点。由于对可变对象的操作会同时影响其他相同引用的变量,对可变对象参数需要谨慎。

       对于不可变对象来说,将其传递给一个函数,python会在内存中复制新建一个对象,这样函数内的变量和函数外的变量就是独立的,不会相互影响。

       那么python中有哪些可变对象和不可变对象呢?对于基本的数据类型来说,一些占据内存较大的对象,比如列表和字典都是可变对象,其他的诸如元组集合等对象是不可变对象。还有pandas中的DataFrame对象以及numpy的ndarray对象都是可变对象。

你可能感兴趣的:(python编程)