python - 如何避免在 pyx 文件(Cython)中使用函数?
问题描述
我正在使用 Cython。我想知道是否有必要def somefunction()
在我的.pyx
文件中使用函数 ( )。
这是我定义.pyx
文件的当前方式(例如pyxfname.pyx
):
from __future__ import division
import numpy as np
cimport numpy as np
def somefunction():
cdef int i, j
cdef np.ndarray[double, mode="c", ndim=2] Kappa = np.zeros( [10 , 10], dtype=np.float64)
for i in range(0,10):
for j in range(0,10):
Kappa[i,j] += 1
print "Hello world"
这就是pyfile.py
调用该pyx
文件的 python 文件(比如 )的结构:
#Implement the cython job
import cosmos_cy
pyxfname.somefunction()
当我完成 cythonizing 的过程时,我只需要python pyfile.py
运行文件。事情确实运行正常。
在上面的例子中,当我不使用时somefunction()
,我得到一个错误,上面写着Buffer types only allowed as function local variables
类似于这篇文章中描述的内容。
此外,我在多个地方(这里和这里)看到 Cython 不喜欢在函数中包含函数。所以,当我想在pyx
文件中定义更多函数时,我的手被束缚了。
因此,我想避免定义 python 函数 somefunction()
。我需要在我的pyx
或py
文件(或两者)中进行哪些更改以实现所需的功能而无需使用 python 函数?任何帮助都感激不尽。
解决方案
推荐阅读
- c# - 从列表 C# LINQ 中的字符串替换一个单词
- reactjs - 我的代码有什么问题使它在 js fiddle 上不起作用?
- django-rest-framework - Django-rest-framework 不会发送用户注册激活邮件
- arrays - 唯一排序如何实现
- c - 函数无明显原因重复运行
- javascript - javascript中此关键字的异常行为
- cakephp - CakePHP:从 3.9.x 升级到 4.0:bin/cake 升级 rector --rules phpunit80 挂起
- linux - linux命令行输入中的硬链接
- javascript - React-window,如何防止状态更改时重新渲染列表?
- flutter - 当我安装任何颤振包时,示例项目还包括?