python函数参数讲解
在 Python 中,函数参数的传递方式既不是完全意义上的指针,也不是传统意义上的引用。
Python 参数传递的本质更像是对象的引用传递,但与 C++ 等语言中的引用又有所不同。
一、不可变对象作为参数
当一个不可变对象(如整数、字符串、元组等)作为参数传递给函数时:
看起来像是值传递。因为在函数内部修改这个参数时,实际上是创建了一个新的对象,而不会影响外部原始的对象。
二、可变对象作为参数
当一个可变对象(如列表、字典、集合等)作为参数传递给函数时:
类似于引用传递。在函数内部修改这个对象时,外部的原始对象也会被改变。
三、实例作为参数
如果在 Python 中向函数传递一个类的实例,其行为与传递一般的可变对象类似。
这是因为实例本质上也是一个可变对象,通过引用进行传递。在函数内部对实例的属性进行修改时,实际上是在操作同一个对象在内存中的表示,所以外部的实例也会反映出这些修改。
去看看python语言的底层原理吧,python主要是用 C 语言实现的,同时也包含了一些用 C++ 编写的组件以提高性能。