python中的函数传参

python 中的函数参数既不是值传递也不是引用传递,是一种叫做 共享传参的方式。

####变量和对象

在python中,一切皆对象,这句话在不同的阶段理解的层次也不同。不管是是 str、int、list还是其他类型,统统都是对象。 我们说它是”对象”时我们到底在表达什么?
每个 Python 对象都有标识、类型和值。只有对象的值会不时变化。
变量保存的是对象的引用。
对象就像包裹,变量就像标签,赋值的过程就是 把标签贴在包裹上。

####可变与不可变

不可变对象:int float tuple str
可变对象:list dict set

可变与不可变是当 对象的内存地址不变时,对象的数据是否可更改,可更改就是可变对象,反之就是不可变。

####函数传参

Python 唯一支持的参数传递模式是共享传参(call by sharing)。 共享传参指函数的各个形式参数获得实参中各个引用的副本。也就是 说, 函数内部的形参是实参的别名。
当我们向函数传递 不可变对象时,就像 值传递,而传递 可变对象时,就像引用传递。