跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 跨语言调用是否为最优解,如果不是如何避免?
未分類
29 1 月 2021

跨语言调用是否为最优解,如果不是如何避免?

跨语言调用是否为最优解,如果不是如何避免?

資深大佬 : QBugHunter 4

现在有个程序 A,使用 C++编写。

然后有一个 Pythno 脚本 B,脚本 B 用于去某些指定的网站抓取数据,抓取的时间由程序 A 来决定,只有特定时间内抓取的数据才有效。

这里有 2 个限制

  1. 程序 A 决定抓取时间是由别的因素来决定的,包括人工输入,所以完全随机,因此脚本 B 无法通过在指定时间执行,把数据存入文件,然后程序 A 来读取这种形式。
  2. 脚本 B 经常性的需要替换,约定脚本 B 里的函数名一样,但函数代码经常更换已满足不同情况下的需求

在这种情况下,只能在程序 A 里编写调用 python 脚本的代码。

请问类似这种情况,由 C++调用 Python 是否是最优选择?如果不是有没有更好的解决办法。

大佬有話說 (12)

  • 資深大佬 : gimp

    脚本 B 经常性需要替换,不知道现在是怎么替换的

    如果基于协议解耦呢,Python 提供 HTTP 、TCP 、UDP 接口,灵活性应该会高一点儿

  • 資深大佬 : locoz

    把 B 做成 RPC 就好了

  • 主 資深大佬 : QBugHunter

    @gimp
    就是替换,/home/Lwx/LookTB.py
    目前的策略是 LookTB.py 文件,里面有个函数
    def get_result()

    然后每次替换的时候都是直接替换 LookTB.py 这个文件,但不管脚本如何替换,文件名和函数名以及函数的返回值类型都不会变

    目前的策略就是,程序 A 里写了一段 C++调用 python 的脚本,获取 get_result ()的返回值,这样无论 ookTB.py 这个脚本如何修改,程序 A 总能正确的调用并获得结果

  • 資深大佬 : billlee

    C++ 调 python 完全没有问题,不要乱优化

  • 資深大佬 : nuk

    我们都是 popen 来一发

  • 資深大佬 : wunonglin

    rpc ?

  • 主 資深大佬 : QBugHunter

    @billlee
    赵 4 老师说决定不要做语言 A 调用语言 B 这样的事情,但我又想不出别的好办法

  • 資深大佬 : Ptu2sha

    mq rpc

  • 資深大佬 : BingoXuan

    @QBugHunter
    当然是开进程调用啦。不要老想着 a 语言调用 b 语言,然后写了各种接口。最后其实完全可以像上那样 popen 执行,抓取返回数据

  • 資深大佬 : wzzzx

    这个调用没毛病,做好分层就可以。现在 Qt 的开发都是 C++ + QML,可以理解为 C++带动 JS,问题不大

  • 資深大佬 : wzzzx

    不过我来搞的话,会看业务吧,看看能不能通过协议来调用,跨进程通信。这样耦合度会更低,也更好维护

  • 資深大佬 : dddd1919

    如果 python 只是简单的任务脚本,需要调用执行即可:c++ 用 shell 命令 + 传参调用 python 脚本

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具