Python函数参数传递:浅显理解及代码示例
在Python中,函数的参数有两种传递方式:值传递(Copy)和引用传递(Reference)。
值传递(Copy):
- 当你将一个对象作为参数传递给另一个函数时,Python会创建一个新的对象来保存原始对象的值。这个新对象与原对象是独立的,对原对象的修改不会影响到新对象。
# 创建一个可变对象列表
list1 = [1, 2, 3]
def modify_list(original):
original[0] = 'new first value'
return original
# 将list1作为参数传递给modify_list函数
modified_list1 = modify_list(list1)
print(modified_list1) # 输出:[None, 2, 3]
引用传递(Reference):
- 当你将一个对象作为不可变类型(如列表、元组等)的参数传递给函数时,Python会直接使用这个对象在内存中的位置来表示这个对象。这意味着对原对象的修改会影响到传入函数的对象。
# 创建一个可变对象列表
list1 = [1, 2, 3]
def modify_list(original):
original[0] = 'new first value'
return original
# 将list1作为参数传递给modify_list函数,此时list1是引用类型
modified_list1 = modify_list(list1)
print(modified_list1) # 输出:[None, 2, 3]]
# 对原对象list1进行修改,会直接影响到传入函数的对象
list1[0] = 'new first value again'
print(modified_list1)) # 输出:['new first value again', 2, 3]
总结:
- Python中将对象作为参数传递给函数时,有值传递(Copy)和引用传递(Reference)两种方式。
- 值传递创建新对象,对原对象修改不会影响到新对象。
- 引用传递直接使用原对象在内存中的位置表示,原对象的修改会影响到传入函数的对象。
还没有评论,来说两句吧...