“编写python绑定”与“直接使用命令行”
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了“编写python绑定”与“直接使用命令行”,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1849字,纯文字阅读大概需要3分钟。
内容图文
![“编写python绑定”与“直接使用命令行”](/upload/InfoBanner/zyjiaocheng/658/0cf7eba033b043e2a3cc7806f8c7cc14.jpg)
我对python绑定有疑问.
我有一个命令行,其中包含一些功能,并且代码经过重构以通过共享库提供功能.我想知道从“为共享库编写python绑定”与“直接调用命令行”中获得的真正好处是什么.
我认为一个明显的优势是性能,共享库将链接到同一进程,并且可以在同一进程内调用该功能.它将避免通过命令行生成新进程.
对于这种情况,我可以从编写python绑定中获得其他好处吗?
谢谢.
解决方法:
我简直无法想象这样一种情况,即比包装库本身更喜欢包装库的命令行界面. (除非有一个库带有简洁的命令行界面,而在内部却是一团糟;但是OP表示就库函数调用而言,可以轻松访问通过命令行提供的相同功能).
编写Python绑定的最大优点是库与Python之间的数据接口明确定义.理想情况下,该库可以直接在Python管理的内存上运行,而无需进行任何数据复制.
为了说明这一点,让我们假设一个库函数比打印当前时间要复杂得多,即它获得了大量的数据作为输入,执行一些操作并返回大量的数据作为输出.如果期望将输入数据作为输入文件,则Python需要首先生成此文件.在通过命令行调用库之前,必须确保操作系统已完成文件的写入(我已经看到几个C库,其中将sleep(1)调用用作此问题的创可贴…).而且Python必须以某种方式返回输出.
如果命令行界面不依赖文件,而是在命令行上获取所有参数并在stdout上打印输出,则Python可能需要在二进制数据和字符串格式之间进行转换,而并不总是具有预期的结果.它还需要通过管道将stdout返回并进行解析.没问题,但是要做好所有这些工作.
错误处理呢?好吧,命令行界面可能会通过在stderr上打印错误消息来处理错误.因此,Python也需要捕获,解析和处理它们. OTOH,相应的库函数几乎肯定会使调用程序可以访问成功标志.这对于Python更直接可用.
所有这些显然都在影响性能,您已经提到过.
另外,如果您自己开发该库,则可能会在一段时间后发现Python工作流程已使整个命令行界面过时,因此您可以放弃对它的完全支持并节省大量时间.
因此,我认为对于Python绑定有明确的理由.对我来说,Python的最大优势之一就是可以轻松创建和维护此类包装器.不幸的是,大约有7或8种同样简单的方法可以做到这一点.首先,我建议使用ctypes,因为它不需要编译器,并且可以与PyPy一起使用.为了获得最佳性能,请使用本机C-Python API,我也发现它很容易学习.
内容总结
以上是互联网集市为您收集整理的“编写python绑定”与“直接使用命令行”全部内容,希望文章能够帮你解决“编写python绑定”与“直接使用命令行”所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。