在python中,对象可以分为不可变类型和可变类型两种。
不可变类型:包含字符串、整数、元组等类型,类似c++中的值传递。
可变类型:包含列表、字典等类型,类似c++中的引用传递。
传递不可变类型对象的示例如下:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
def test_func(a):
a = 10
if __name__ == '__main__':
a = 5
test_func(a)
print(a)
输出:
5
由于a是整型,为不可变类型,因而输出结果为5。
传递可变类型对象的示例如下:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
def test_func(a):
a.append(5)
if __name__ == '__main__':
a = [1, 2, 3, 4]
test_func(a)
print(a)
输出:
[1, 2, 3, 4, 5]
由于a是列表,为可变类型,因而输出结果为[1, 2, 3, 4, 5]。