函数的参数传递,本质上传递的是引用。比如说:

def f(x):
    x = 100
    print x

a = 1
f(a)
print a

输出结果为:

100
1

参数x是一个新的引用,指向a所指的对象。如果参数是不可变(immutable)的对象,a和x引用之间相互独立。对参数x的操作不会影响引用a。这样的传递类似于C语言中的值传递。

如果传递的是可变(mutable)的对象,那么改变函数参数,有可能改变原对象。所有指向原对象的引用都会受影响,编程的时候要对此问题留心。比如说:

def f(x):
    x[0] = 100
    print x

a = [1,2,3]
f(a)
print a

输出结果为:

[100,2,3]
[100,2,3]

相关文章:

  • 2020-04-08
  • 2021-07-26
  • 2021-10-02
  • 2021-11-24
  • 2021-12-18
  • 2021-08-01
猜你喜欢
  • 2021-10-10
  • 2021-08-08
  • 2022-12-23
  • 2021-07-19
  • 2021-12-12
  • 2022-01-17
相关资源
相似解决方案