我的课程之一如下:

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,..)一样使用它。 我怎样才能做到这一点?

  ask by wtayyeb translate from so

本文未有回复,本站智能推荐:

2回复

将第三方库添加到使用cython编译的pyd文件中,并使用pyinstaller在exe上打包

我正在使用cython从py到pyd编译一个文件,我按如下方式创建setup.py: from setuptools import setup from Cython.Build import cythonize 它在main.py中导入,如下所示: from src.lib
2回复

Cython用Visual Studio(Windoes SDK软件包)编译器cl.exe创建一个.pyd

我正在尝试使用Microsoft Windows SDK附带的cl.exe将.pyd创建的.c文件编译为.pyd文件。 由于这是在Windows 7 64位下为Python 2.7 64位构建Cython的推荐软件包,因此我认为使用相同的编译器来创建.pyd文件是一个好主意。 我当前
1回复

如何创建.pyd文件?

我正在创建一个使用Python OpenCV的项目。 我的图像处理有点慢,所以我认为我可以通过创建.pyd文件(我在某处读取)来加快代码速度。 我能够使用Cython创建一个.c文件,但是如何制作一个.pyd ? 虽然它们是一种.dll ,我应该先制作一个.dll并转换它吗? 我认为
1回复

指定* .pyd输出路径?

在本文中 ,答案是.c文件的输出路径。 我想知道如何将所有.pyd文件输出到特定目录(默认情况下,它与源代码混合),例如,源代码中的目录pyd/ 。
4回复

Cython可以编译成EXE吗?

我知道Cythons的目的是什么。 它是用类似Python的语言编写可编译的C扩展,以便在代码中产生加速。 我想知道(并且似乎找不到使用我的google-fu)是因为Cython可以以某种方式编译成可执行格式,因为它似乎已经将python代码分解为C. 我已经使用了Py2Exe,它只是
1回复

Cython编译为exe,Windows

我在Windows上将Cython生成的C代码编译为EXE时遇到问题。 Windows 10 Python 3.5、32位元,Anaconda Visual Studio 14.0 使用这个 stackoverflow线程,我能够使用命令行将test.py转换为test.c
1回复

Cython编译错误“不是有效的模块名称”

我试图在Windows上编译Cython文件(.pyx),这是我刚刚从.py保存的文件。 这是我的项目目录路径。 这是我的cl_setup.py 我正在使用以下语句在同一文件夹中进行编译。 但是我收到以下错误。 我的猜测是我缺少cythonize()的某些参数,试图没
1回复

编译cython .pyx文件时出错

我对cython完全陌生,目前正在学习。 我有一个.pyx文件,当我尝试使用ff在ipython笔记本中使用distutils模块进行编译时。 码: 我收到以下错误: 当我尝试使用python setup.py build_ext --inplace和setup.py存储
1回复

从Cython代码创建可执行文件

我试图按照以下说明在cython中创建可执行文件:在Cython中创建可执行文件 。 但是,我一直收到错误消息“对“ WinMain @ 16”的未定义引用collect2.exe,我很好奇这是什么原因。 编辑: 我目前正在使用以下Cython文件执行以下操作: 通过命
1回复

用于Django应用程序的Cython:它会起作用吗?

使用python 3.4 Django app进行cython编译,还是可以在没有大量工作的情况下使用? 这个答案 - https://stackoverflow.com/a/7347168/805141 - 关于保护python代码的问题促使我提出这个问题。 之前已经提出了一个类似