Python中的引用传递和值传递
什么是值传递?
如果你接触过其他的编程语言,比如 C/C++,很容易想到,常见的参数传递有 2 种:值传递和引用传递。所谓值传递,通常就是拷贝参数的值,然后传递给函数里的新变量。这样,原变量和新变量之间互相独立,互不影响。
# -*- coding: utf-8 -*-
a = 'Tom'
b = a
a = 'Jim'
print(b)
a = {'name':'Tom'}
b = a
a = {'name':'Jim'}
print(b)
什么是引用传递?
所谓引用传递,通常是指把参数的引用传给新的变量,这样,原变量和新变量就会指向同一块内存地址。如果改变了其中任何一个变量的值,那么另外一个变量也会相应地随之改变。
# -*- coding: utf-8 -*-
a = dict()
a['name']='Tom'
b = a
a['name']='Jim'
print(b)
如何判断值传递和引用传递
如果你传入的参数对象是可变对象:列表,字典,这个时候就是引用传递,如果参数在函数体内被修改,那么源对象也会被修改。如果你传入的参数对象是不可变的对象:数字,元组,字符串,或者是字面量,这个时候就是值传递。那么源对象是不会改变的,
备注:本文有严重失误,敬请等待修改...