我想用计算欧几里得距离的方法创建我的类 Point。Point 类继承自 QPointF 类。但是在执行 add 或 mul 等操作时,结果不是 Point 类,而是 QPointF。如何解决?我应该覆盖所有魔术方法还是有其他解决方案?
from PyQt5.QtCore import QPointF
class Point(QPointF):
def __init__(self, *args, **kwargs):
super(QPointF, self).__init__(*args, **kwargs)
def dist(self):
return (self._p.x() * self._p.x() +
self._p.y() * self._p.y()) ** 0.5
a = Point(1, 2)
b = Point(2, 3)
print(a + b, type(a + b))
>> PyQt5.QtCore.QPointF(3.0, 5.0) <class 'PyQt5.QtCore.QPointF'>
杨魅力
相关分类