python的传值与引用

来源:互联网 发布:唯品会抢购软件 编辑:程序博客网 时间:2024/06/04 01:31

对于python比较熟悉的人们都应该了解这个事实,在python中,strings, tuples, 和numbers是不可更改的对象,而list,dict则是可以修改的对象。何谓可更改,何谓不可更改?

例:

可更改vs不可更改

1
2
3
4
5
nfoo = 1
nfoo = 2
lstFoo = [1]
lstFoo[0] = 2

代码第2行中,内存中原始的1对象因为不能改变,于是被“抛弃”,另nfoo指向一个新的int对象,其值为2。两次nfoo地址不一样。

代码第5行中,更改list中第一个元素的值,因为list是可改变的,所以,第一个元素变更为2。lstFoo地址不变。

另外,如果有函数的形参是可变变量,则相当于传值,如果是不可变变量,则相当于传地址!!!


0 0
原创粉丝点击