简单的问题。我有两个ctypes.c_double
。我想将它们加或减在一起。
我希望能够这样说:
In [1]: c_double(2) + c_double(2)
Out[1]: c_double(4.0)
目前,当我尝试此操作时,出现错误:
TypeError: unsupported operand type(s) for +: 'c_double' and 'c_double'
我当前的解决方法是:
In [1]: result = c_double(2).value + c_double(2).value
In [2]: c_double(result)
Out[2]: c_double(4.0)
有没有办法直接加/减
ctypes.cdouble
? 最佳答案
您可以继承c_double
类以添加__add__
方法
import ctypes
class my_c_double(ctypes.c_double):
def __add__(self,other):
return my_c_double(self.value + other.value)
a = my_c_double(10)
b = my_c_double(20)
print((a+b).value)
打印
30
请注意,您可能要实现
__radd__
和__iadd__
并检查类型,以便能够直接使用浮点数和整数左加。关于python - 如何在Python中添加/减去两个ctypes.c_double,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57186789/