pyx中定义的函数变成了内置函数?

2024-10-02 22:34:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我在玩cython教程(http://docs.cython.org/en/latest/src/tutorial/cython_tutorial.html

我有这样一个目录:

somedir/ExampleCython.py
somedir/fib.pyx
somedir/fib.so
somedir/function_file.py
somedir/setup.py

在哪里光纤pyx从上面链接的cython教程中定义函数fib,function_文件.py包含以下定义:

^{pr2}$

以及示例thon.py包含以下内容:

import fib as moo

print moo.fib

from function_file import moopy

print moopy

我建造了小谎使用python设置.py构建扩展——就地,然后运行python示例thon.py我得到以下输出:

<built-in function fib>
<function moopy at 0x1002b4398>

现在,我知道python没有内置的fib,为了测试,我试着把fib这个名字改成像poopypants这样愚蠢的名字,但它还是说它是内置的。fib函数的名称空间发生了什么?我认为在这个模块中,我不能在其他地方找到一个更大的问题来简化它。在

供参考-OSX 10.12.6上的python 2.7.11/cython 0.26


Tags: 函数pyimport示例定义function教程tutorial
1条回答
网友
1楼 · 发布于 2024-10-02 22:34:20

这在一篇评论中得到了解决,但作为完整性的答案:

Python将函数描述为“内置函数”,纯粹是为了表示它是用C编译的,而不是说它是一个标准的库函数,因此出现了这样的问题:在正确的模块中找到了正确的函数。在

在我的电脑上,它显示为<cyfunction module.function_name at 0xsome_address>,这是一个更有帮助的消息。我认为这可能是Python3的改进(但我不能百分之百确定)。在

相关问题 更多 >