猿问

python 中有类似 C++ 中 const reference 的用法吗?

比方说,C++中可以定义一个这样的函数
voidfoo(constvector&data);
而在python中
deffoo(data):
...
data_list=[1,2,3]
foo(data_list)
data_list是可能被修改的。
请问,我在python中应该如何写,保证data_list不被修改?
感谢大家的解答。如果因为程序前后的要求,data_list必须是一个列表那foo(tuple(data_list))性能损失大吗?
FFIVE
浏览 327回答 2
2回答

守着一只汪

使用tuple这种不可变对象,或者复制一份传递进去。这样的情况应该比较少。比如调用一个第三方库的接口,但是那个接口因为某种原因会毁掉你传进去的列表,比如list.sort()方法。如果你是为了确保一个可变对象在函数调用后不变的话,那么你应该重写那个函数,然后在文档中注明传入对象会不会变、会怎么变。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答