考虑一下:
operator.add(a, b)
我很难理解这是做什么用的。运算符类似于+-*/
,那么operator.add(a, b)
是做什么的,以及如何在程序中使用它?
发布于 2014-12-04 02:24:50
因为operator.add
是一个函数,您可以向它传递参数,所以它适用于不能使用像a+d
这样的语句的情况,比如map
或itertools.imap
函数。为了更好地理解,请参阅以下示例:
>>> import operator
>>> from itertools import imap
>>> list(imap(operator.add,[1,3],[5,5]))
[6, 8]
发布于 2014-12-04 02:22:51
它做同样的事情,它只是Python operator module中运算符的一个函数版本。它返回结果,所以你可以这样做:
result = operator.add(a, b)
这在功能上等同于
result = a + b
发布于 2014-12-04 02:24:06
从字面上看,+
操作符就是这样定义的。请看下面的示例
class foo():
def __init__(self, a):
self.a = a
def __add__(self, b):
return self.a + b
>>> x = foo(5)
>>> x + 3
8
+
运算符实际上只是调用类的__add__
方法
同样的事情也发生在原生Python类型上,
>>> 5 + 3
8
>>> operator.add(5,3)
8
请注意,由于我定义了__add__
方法,因此我还可以
>>> operator.add(x, 3)
8
https://stackoverflow.com/questions/27278872
复制相似问题