python 函数竟然可以操作实参

对于这样一个问题:

def function(a):

  ...

 

在函数体内改变a 的值,调用函数的实参会不会改变呢?

答案是这样的:

(1)如果数字、字符串或元组,本身就是不可变的,自然也不会影响到函数体外的对象

(2)如果是列表或字典,那么函数内修改参数内容,就会影响到函数体外的对象。

对于列表,如果在function内需要改变列表的值,那么靠谱的做法是首先复制列表,,用list函数:

localA = list(a)

这样就可以了。

posted @ 2017-07-03 14:39  ghenry  阅读(1442)  评论(0编辑  收藏  举报