cython为类定义.pyd

时间:2014-04-19 21:56:15

标签: python compilation cython

我的一个课程如下:

class UnitFloat(float):
    ''' UnitFloat(value, unit) '''
    __slots__    = ('unit',)

    ### Make UnitFloat Immutable
    def __new__(cls, value, unit):
        ''' Create new instance of UnitFloat(value, unit) '''
        instance         = float.__new__(cls, value)
        instance.unit    = unit
        return instance


    def __getnewargs__(self):
        ''' Return self as a plain tuple. Used by copy and pickle. '''
        return (self.value, self.unit)

    value = property(float)

    def getIn(self, unit, decimal=None):
        ...

    def __add__(self, other):
        o    = change_other_to_self_unit(other, self.unit)
        v    = self.value + o.value
        return UnitFloat(v, self.unit)
    ...

我还定义了一些神奇的方法,例如__add____mul____pow__,......

我知道Cython编译内部类型非常有效。但它们仅限于int,float,bool,.......似乎必须创建一个扩展并使用它。但我不知道如何为我的样本类定义这样的扩展。

问题:我想创建一个定义文件(* .pxd),因此Cython比Pure-Python-Mode更好地编译它,我可以像内置类型一样使用它(int,float,long ,..)。我怎么能这样做?

0 个答案:

没有答案