Python函数参数传递:浅显理解及代码示例

原创 朱雀 2025-03-23 20:24 8阅读 0赞

在Python中,函数的参数有两种传递方式:值传递(Copy)和引用传递(Reference)。

  1. 值传递(Copy):

    • 当你将一个对象作为参数传递给另一个函数时,Python会创建一个新的对象来保存原始对象的值。这个新对象与原对象是独立的,对原对象的修改不会影响到新对象。
    1. # 创建一个可变对象列表
    2. list1 = [1, 2, 3]
    3. def modify_list(original):
    4. original[0] = 'new first value'
    5. return original
    6. # 将list1作为参数传递给modify_list函数
    7. modified_list1 = modify_list(list1)
    8. print(modified_list1) # 输出:[None, 2, 3]
  2. 引用传递(Reference):

    • 当你将一个对象作为不可变类型(如列表、元组等)的参数传递给函数时,Python会直接使用这个对象在内存中的位置来表示这个对象。这意味着对原对象的修改会影响到传入函数的对象。
    1. # 创建一个可变对象列表
    2. list1 = [1, 2, 3]
    3. def modify_list(original):
    4. original[0] = 'new first value'
    5. return original
    6. # 将list1作为参数传递给modify_list函数,此时list1是引用类型
    7. modified_list1 = modify_list(list1)
    8. print(modified_list1) # 输出:[None, 2, 3]]
    9. # 对原对象list1进行修改,会直接影响到传入函数的对象
    10. list1[0] = 'new first value again'
    11. print(modified_list1)) # 输出:['new first value again', 2, 3]

总结:

  • Python中将对象作为参数传递给函数时,有值传递(Copy)和引用传递(Reference)两种方式。
  • 值传递创建新对象,对原对象修改不会影响到新对象。
  • 引用传递直接使用原对象在内存中的位置表示,原对象的修改会影响到传入函数的对象。
文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,8人围观)

还没有评论,来说两句吧...

相关阅读