函数的参数传值还是传引用
python 的参数传递是什么类型的呢
python 的参数是传引用的吗
下面的代码在函数内修改了 n 的值,但是函数外,n 没有被修改,所以不是传引用的。
python 的参数是传值的吗
下面的函数在函数内部列表被修改,同时外面的列表也被修改了,所以不是传值的。
python 的参数是根据参数的可变不可变来决定传值还是传引用的吗
下面的函数的入参都是一个可变的 list 结构,但是根据处理方式的不同:有的列表在函数外没有被修改,有的列表在函数外被修改了,所以 python 的参数传递问题也不是根据可变不可变对象来决定的。
python 对象
可变:mutable
不可变:immutable
基础数据类型的可变与不可变
类型
不可变
可变
备注
bool
✅
int
✅
float
✅
str
✅
tuple
✅
frozenset
✅
不可变的set
list
✅
dict
✅
set
✅
在 python 内部,所有的数据都是一个 对象(object)
。
对象(object)
。object 有几个函数可以操作
id(o)
返回一个 object 的唯一数字 id
在创建的时候确定,不可更改
内部实现上返回了内存地址
o is b
判断 o 和 b 两个 object 是不是同一个 object
或者说 o 和 b 两个变量是不是引用的同一个 object
type(o)
返回一个 object 的类型
object 操作
1. 将 10
赋值给 x
2. 然后将 x
赋值给 y
3. 然后将 y
加上 10
4. 将 x
设置为一个可变 object 列表
5. 将 y
设置为 x
6. y
append 一个数据
7. 将一个新的列表赋值给 y
参考
Last updated
Was this helpful?