python 函数竟然可以操作实参
对于这样一个问题:
def function(a): ...
在函数体内改变a 的值,调用函数的实参会不会改变呢?
答案是这样的:
(1)如果数字、字符串或元组,本身就是不可变的,自然也不会影响到函数体外的对象
(2)如果是列表或字典,那么函数内修改参数内容,就会影响到函数体外的对象。
对于列表,如果在function内需要改变列表的值,那么靠谱的做法是首先复制列表,,用list函数:
localA = list(a)
这样就可以了。
对于这样一个问题:
def function(a): ...
在函数体内改变a 的值,调用函数的实参会不会改变呢?
答案是这样的:
(1)如果数字、字符串或元组,本身就是不可变的,自然也不会影响到函数体外的对象
(2)如果是列表或字典,那么函数内修改参数内容,就会影响到函数体外的对象。
对于列表,如果在function内需要改变列表的值,那么靠谱的做法是首先复制列表,,用list函数:
localA = list(a)
这样就可以了。