有没有办法防止python中的副作用?例如,以下函数有副作用,是否有任何关键字或任何其他方式让python抱怨它?
def func_with_side_affect(a): a.append('foo')
John Y.. 10
Python实际上并未设置为强制防止副作用.正如其他人提到的那样,你可以尝试deepcopy
数据或使用不可变类型,但是这些仍然存在难以捕获的极端情况,并且它只需要比它的价值更多的努力.
在Python中使用函数式通常涉及程序员简单地设计其功能以实现功能.换句话说,当你写一个函数,你把它写在这样它不发生变异参数的方法.
如果你正在调用其他人的功能,那么你必须确保你传入的数据不能被改变,或者你必须自己保留一个安全的,未受影响的数据副本,以免你不受信任的功能.