Python中的参数处理机制
Python中,参数的处理机制是将实参,即对象的引用,作为值传递并赋值给形参。
简单来理解就算传递了对象的引用,但又只是将对象的引用“复制”给了形式参数。
用cpp的方式理解,即传递了是将实际参数的地址复制给了实际参数。此时实际参数与形式参数指向统一内存空间。
但在函数运行时,根据参数的类型,会产生不同的处理方式:
- 若形参是不可变类型,则在函数中形参中值发生变化时,形参会引用新生成的对象。由于值变化时,形参指向了新的对象,所以运行中的形参的变化对实参没有影响。
- 若形参是可变类型,则在函数中形参中的值发生变化时,程序会更新对象本身。故若是以可变类型传入,则若函数中形参发生变化,调用时传入的实参也会发生变化。