什么是幂等操作?
最佳答案
在计算中,幂等操作是指如果使用相同的输入参数多次调用该操作,则不会产生额外效果。例如,从集合中删除项目可以被视为集合上的幂等操作。
在数学中,幂等运算是指f(f(x)) = f(x)。例如,abs()
函数是幂等的,因为对于所有 x
来说,abs(abs(x)) = abs(x)
。
可以通过考虑数学定义中的x表示对象的状态,而f是可能改变该对象的操作来协调这些略有不同的定义。例如,考虑 Python set
及其 discard
方法。 discard
方法从集合中删除一个元素,如果该元素不存在则不执行任何操作。所以:
my_set.discard(x)
与执行两次相同操作具有完全相同的效果:
my_set.discard(x)
my_set.discard(x)
幂等操作经常用于网络协议(protocol)的设计中,其中执行操作的请求保证至少发生一次,但也可能发生多次。如果操作是幂等的,那么执行该操作两次或多次没有什么坏处。
请参阅有关 idempotence 的维基百科文章了解更多信息。
<小时/>上面的答案之前有一些不正确和误导性的例子。下面的评论是 2014 年 4 月之前写的,涉及较旧的修订版。
关于language-agnostic - 什么是幂等操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1077412/