错误案例分析:Python函数参数传递问题

原创 我不是女神ヾ 2025-01-12 19:18 81阅读 0赞

在 Python 中,函数的参数传递主要分为两种方式:值传递和引用传递。

  1. 错误案例一:值传递导致数据丢失
  1. def square(num):
  2. return num ** 2
  3. num = 5
  4. squared_num = square(num) # 参数为原始数值
  5. print(squared_num) # 输出 25,因为原数被复制而非修改
  6. # 改变原变量 num
  7. num = 10
  8. print(squared_num) # 这时输出 100,尽管 num 变了
  1. 错误案例二:引用传递导致对象共享
  1. class Person:
  2. def __init__(self, name):
  3. self.name = name
  4. def update_person(person):
  5. person.name = "Updated Name"
  6. # 创建两个不同的人实例
  7. person1 = Person("Alice")
  8. person2 = Person("Bob")
  9. # 通过引用传递,将 person1 更新为 updated_name
  10. update_person(person1)
  11. print(person2.name) # 输出 "Bob",因为 person2 的引用未被更新
  12. # 改变原变量 person1,再次更新 person2
  13. person1.name = "New Alice"
  14. update_person(person1)
  15. print(person2.name) # 输出 "Updated Name",因为 person2 仍引用了 person1 更新后的值

以上两种错误案例主要在于对 Python 参数传递方式的理解不足。在实际编程中,需要根据具体需求和场景选择合适的参数传递方式。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

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

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

相关阅读