Python数字魔术方法作为类方法

时间:2019-02-22 12:24:04

标签: python python-3.x magic-methods

我已经编写了一个自定义类,该类模仿诸如米,秒等物理单位。现在,我以用户可以使用值实例化该类的方式实现了这些类。

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)

魔术方法是否可以接受类和实例(可能不使用元类)?

0 个答案:

没有答案