"""
变量的赋值,只是表示让变量指向了某个对象,并不表示拷贝对象给变量;而一个对
象,可以被多个变量所指向。
可变对象(列表,字典,集合等等)的改变,会影响所有指向该对象的变量。
对于不可变对象(字符串,整型,元祖等等),所有指向该对象的变量的值总是一样
的,也不会改变。但是通过某些操作(+= 等等)更新不可变对象的值时,会返回一个新
的对象。
变量可以被删除,但是对象无法被删除。
"""
"""
Python 里所有的数据类型都是对象,所以参数传递时,
只是让新变量与原变量指向相同的对象而已,并不存在值传递或是引用传递一说
如果你想通过一个函数来改变某个变量的值,通常有两种方法。一种是直接
将可变数据类型(比如列表,字典,集合)当作参数传入,直接在其上修改;第二种则是创
建一个新变量,来保存修改后的值,然后将其返回给原变量。在实际工作中,我们更倾向于
使用后者,因为其表达清晰明了,不易出错
"""
def my_func1(b):
b = 2
a = 1
my_func1(a)
print(a)
def my_func3(l2):
l2.append(4)
l2 = l2 + [5] # 创建新的对象[1, 2, 3, 4, 5],让l2 指向了
print(l2)
l1 = [1, 2, 3]
my_func3(l1)
print(l1)
def func(d):
d['a'] = 10
d['b'] = 20
d = {'a': 1, 'b': 2}
func(d)
print(d)
python 学习:值传递,还是引用传递
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- https://blog.csdn.net/trochiluses/article/details/16879473
- 引用文章地址:http://www.cnblogs.com/loleina/p/5276918.html 引用文章...
- 转自 https://blog.csdn.net/theonegis/article/details/51013...