这一章节我们来讨论一下参数的传递
1.参数的传递是通过自动将对象赋值给本地变量名来实现的
>>> x=1
>>> def test(param):
print(param)
print(id(param))
>>> id(x)
505991632
>>> test(x)
1
505991632
>>> y='abc d'
>>> id(y)
31887488
>>> test(y)
abc d
31887488
>>>
从上面的代码可以看出,其实就是将1这个对象赋值给param这个对象,从x和y跟param在执行test后的id没有变化证明:x与param,y与param两者都是引用同一个对象
2.在函数内部的参数名的赋值不会影响调用者
>>> def test(param):
print(param)
print(id(param))
param=3
print(param)
print(id(param))
>>> x=1
>>> test(x)
1
505991632
3
505991664
>>> x
1
从代码可以看见,param其实是作为test函数的一个本地变量,它的赋值不会影响到外面的x
3.对于可修改对象,改变param也许会改变调用者
>>> x=[1,2,3]
>>> def test(param):
print(param)
print(id(param))
param[1]=5
print(param)
print(id(param))
>>> test(x)
[1, 2, 3]
19945192
[1, 5, 3]
19945192
>>>
从上面的代码可以看见,我们改变里面的param,同时也改变了外面的x,所以如果x是可修改对象,那么就必须注意这点
总结:这一章节简单讨论了一下参数的传递,以及传递时需要注意的问题
这一章节就说到这里,谢谢大家
------------------------------------------------------------------
版权声明:本文为博主原创文章,未经博主允许不得转载。