当前位置: 首页 > 面试题库 >

在Go(Golang)中编写Python扩展

乐正意智
2023-03-14
问题内容

我目前使用Cython链接C和Python,并以慢速的python代码获得加速。但是,我想使用goroutines实现非常慢(且可并行化)的代码,但是必须可以从python调用它。

如果有必要,我很乐意通过C(或Cython)来建立数据结构等,但是从错误修复/避免的角度来看,避免这种额外的层将是一件好事。

无需重新发明轮子的最简单方法是什么?


问题答案:

更新2015 :从Go 1.5开始可能https://blog.filippo.io/building-python-modules-with-go-1-5/

使用Go 1.5,您可以构建.so对象并将其作为Python模块导入,直接从Python运行Go代码(而不是C)。



 类似资料:
  • 问题内容: 是否有一些有关如何在Go中编写Ruby扩展的教程或实践课程? 问题答案: Go 1.5添加了对构建共享库的支持,这些共享库可从C(因此可以通过FFI从Ruby)调用。这使该过程比1.5版之前的版本(需要编写C胶合层)更容易,并且现在可以使用Go运行时,这在现实生活中实际上是有用的(以前无法进行goroutine和内存分配,因为它们需要Go运行时,如果Go不是主要入口点,则该运行时将无法

  • 只是将Eclipse迁移到Android Studio,在不知道多少快捷方式的情况下费尽周折,导入扩展类方法,如“右键单击->源码->覆盖/实现方法”,然后实现方法。这里我没有找到源选项。我怎样才能包括那些方法。请帮助我尽快得到这个,因为现在我正在键入他们。

  • 问题内容: 在python中,我们使用反斜杠表示当前语句继续到下一行 例如, 或者简单地说, 可以用Go语言做到这一点吗?谢谢 问题答案: 当然可以,只需将运算符放在最后,例如: 另请注意,不可能在操作员之前中断换行。以下代码 无效 : 该规则在此处和规范中进行了描述。

  • 问题内容: 是否有合法的方式写下我打算以后编写完整测试功能的测试用例?就像即将进行的mochajs测试一样? 问题答案: 软件包文档使用以下示例描述了这样的示例: 如果不适用于调用 T和 B的Skip方法,则可以跳过测试和基准测试: 如果您启动带有标志的消息,则将打印您提供的消息(在此示例中,您还需要提供标志以查看跳过消息)。

  • 问题内容: Go是否与Python的多行字符串相似? 如果不是,编写跨多行字符串的首选方式是什么? 问题答案: 根据语言规范,您可以使用原始字符串文字,该字符串由反引号而不是双引号分隔。

  • 问题内容: 假设我有一个文件。我怎么写“你好” TAB“ alex”? 问题答案: 这是代码: 字符串的内部是水平制表符的转义序列。