我已经编写了一个自定义类,该类模仿诸如米,秒等物理单位。现在,我以用户可以使用值实例化该类的方式实现了这些类。
class Unit(BaseUnit):
def __init__(self, value, unitinformation):
super(Unit, self).__init__(unitinformation)
self.value = value
def __mul__(self, other):
value = self.value * other
return self.__class__(value=value, self.unitinformation)
class Meter(Unit):
def __init__(self, value):
super(Meter, self).__init__(value, "stuff that defines Meter")
BaseUnit是一个抽象基类,负责可能的转换等。这一切都很好,但是我也希望例如可以编写
myUnit = 5 * Meter
应等同于
myUnit = Meter(5)
魔术方法是否可以接受类和实例(可能不使用元类)?