首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用类型提示将Python转换为Cython

使用类型提示将Python转换为Cython
EN

Stack Overflow用户
提问于 2016-06-24 17:10:29
回答 1查看 3.1K关注 0票数 15

类型提示现在可以在Python3.5版本中使用。在规范(佩普484)中,目标(和非目标)公开得很清楚:

理由和目标 此PEP旨在为类型注释提供标准语法,为更容易的静态分析和重构打开Python代码,提供潜在的运行时类型检查,以及(在某些情况下)利用类型信息生成代码。..。 在这些目标中,静态分析是最重要的。非目标 使用类型提示进行性能优化,留作读者练习。

另一方面,Cython已经使用了很长时间的静态语法来提高性能。通常,人们用Cython语法重写一些代码,编译它们,然后将它们作为独立的模块导入。这是一项痛苦的工作,在大量的代码基础上完成所有这些工作。但最糟糕的是,即使您正确地执行了上述所有步骤,也无法保证您将有真正的改进(因为如果使用某些模块,可能会导致兼容性问题)。

编写一个使用这种新类型提示代码的工具将是一项困难的任务,会自动将它们转换为Cython语法,并可能完成剩下的工作(将它们编译成模块并将它们全部导入回)?因此,在所有代码库中共享相同的语言语法是可能的。

从理论上讲,编写这样的工具是可能的,但我不确定是否值得(就编写它的复杂性和真正的改进效果而言)。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-24 18:40:08

其他人刚刚询问了484和Cython,具有自己类型的PEP-484类型注释,我用几个月前的帖子回复了484和numpy。

我怀疑这个话题是否适合Stackoverflow。这是一个研究课题,而不是“我如何解决这个编码问题”的问题。

基于有限的阅读,484中的类型提示是初步的,任何使用都仅限于由484名作者开发的代码检查器。Py3已经使用注释很长时间了,但是我很少看到包含它们的代码示例。当然,我在这里所关注的numpy代码中并不是这样。

另一点是,cythonnumpy (和numba)与Py2一起使用,即使不是更多,也与Py3一样多。因此,Py 3.5中最新的铃声-n-哨声通常被这些用户忽略。@运算符是numpy用户最近惟一重视的附加项。

欢迎您的答复,但我可能会提名这个问题的结束,因为它是一个重复或偏离主题。

typing模块正在https://github.com/python/typing上开发。

mypy是基于484,https://github.com/python/mypy的类型检查器(有趣,~/mypy是我放置所有SO测试脚本的目录)。

这是最先进的Python类型检查工作正在完成的地方,而不是这里。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38018780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档