Python to Go 转化Python源码到Go源码

1,399 views
Skip to first unread message

bookaa bookaa

unread,
May 24, 2014, 3:17:22 AM5/24/14
to golang...@googlegroups.com
这个工具可以简称为 Python to GoLang,把 Python 源码自动转化为 Go 源码,然后可编译为独立的可执行文件。(附:Go语言是新兴的类C可编译语言,开源)

大家一般把 Python 理解为是一个脚本语言,虽然开发效率高,但运行速度慢,解释执行,不可编译,依赖解释环境,不方便发布。

多年以来,无数先烈做了大量的努力工作,试图提高 Python 的运行速度,有 pypy,Cython 等。但结果都不理想。

我认为:Python 实际上规定了一套开发规范。用这套规范,你可以快速地表达你的逻辑思想。它并没有限定必须是脚本语言,不可编译。只不过现在只有一个用C实现的 Python 解释器,简称 CPython。于是我们就想当然地认为,Python是脚本语言,不能编译。

我认为,一个软件,不管用什么编程语言,都是表达一些逻辑。它们之间应该是可以转化的。经过几个月的努力,就有了现在这个工具。

我的思想:Python 是开发效率最高的编程语言。无数天才的程序员都狂热地喜欢 Python 和 Go。现在有了本软件,使 Python 可编译,使 Python 可提速,Python 语言不再有缺点!从此我们再也不需要学 C 和 C++ 了!Python 获得了新生!

有人问,为什么要把 Python 转为 Go ,直接用 Go 开发不就行了?
首先,Python 开发效率极高,而 Go 为了简洁缺失很多有用的内容。我不建议把 Go 作为主开发语言。其次,Python 的第三方库非常丰富,而 Go 作为新兴语言,如果能把 Python 的所有库都继承下来,必大大提高 Go 的地位。

本软件有两种工作方式:
方式一:如果你的产品只在已安装 Python 的环境下运行,或者为了方便分析调试,可以用方式一。这时,只会转化主工程文件目录下的py文件。对于 import 的系统模块则不作转化处理。一般一行 Python 代码转化后变成 1.5 行 Go 代码。转化后代码清晰明了,基本保持原函数名,变量名,调用关系。方便再修改优化。
方式二:全转化。这会试图把所有 import 用到的系统模块全部转化为 Go 代码。这通常会产生超过十五万行 Go 代码。优点是这样转化后编译生成的可执行文件不再需要 Python 环境,单独一个 exe 加 python27.dll 加可能的 pyd 文件就可以运行了。方便发布。

有人说,你为什么需要 python27.dll ? 如果带 dll 的话,我一行 exec 就全解决了,何必这么麻烦呢?
如果用exec的话,还是解释执行的。达不到提速和安全的目的。
我的做法,是把每一个函数都变成一个对应的Go函数。每一个变量都变成一个对应的Go源码下的变量。我会尽量智能识别变量类型。如果发现变量是 integer 类型,就会直接使用 go 的 int ,优化了速度。对于不能识别的变量,或 list, tuple等,则用 PyObject ,对应的操作也只能调用 python27.dll 中的对应函数。
还有,Python 的一大优势是库非常丰富。大量的库实际上都是用C编译而来的 pyd 文件。这些pyd文件实际上是dll格式,它们依赖 python27.dll。

有了本软件的转化,大量的 python 库都可以在 go 下运行了。极大地丰富了 go 的功能。比如 go 至今没有好的 gui 库,现在就可以借用 Python 间接实现 gui 开发。

整个项目用了我多半年时间,约3万行代码。主要编程语言用 Python,辅以一些 Go 和 C 代码。如你所想,本软件可以转化自身。本软件的转化过程中,直接面对复杂的 Python 逻辑,把每一个知识点都要细致地从 Python 源码层转化为 PyObject层,再用 go 语言实现,工作量非常大。特别是一些 Python 中有而 Go 中没有的概念,处理起来非常有难度。比如 try/exception, yield, var scope, no use var, var declare等。

本项目准备以开源形式发布。源码稍后提供。暂只支持 Python 2.7.6 不支持 Python3。已经在 Win32,Win64 平台上测试通过。相信也可以很容易地运行在所有支持 Python 和 Go 的平台。Python 是用C实现且开源,Go也是用C实现且开源,几乎可以运行于所有平台。有了这个 Python to Go ,相信将来 Python+Go 会成为主流的开发方式。

作为本转化工具的第一个样例,一个我写的英语听力小工具 http://pan.baidu.com/s/1o6x5zRk 内有 Python 源码,和转化后的 go 源码 (17万行)。

现在可以提供的服务:
1。协助你把 Python 源码转化为可编译的 Go 源码。方便部署,更安全,运行速度更快。
2。协助你对 Python 项目优化提速。
3。演讲,传达我的思想。 
刘涛涛 987...@qq.com

Zoom.Quiet

unread,
May 24, 2014, 5:39:08 AM5/24/14
to golang...@googlegroups.com
嚓! 这事儿忒NB 了!
得大力宣传哪,
今年 ECUG 一定得详细分享一下...
> --
> --
> 官网: http://golang-china.org/
> IRC: irc.freenode.net #golang-china
> @golangchina
> ---
> 您收到此邮件是因为您订阅了Google网上论坛中的“Golang-China”论坛。
> 要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到golang-china...@googlegroups.com
> 要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/golang-china/338ead22-d9df-4854-bd88-89ced7019047%40googlegroups.com
> 要查看更多选项,请访问https://groups.google.com/d/optout



--
人生苦短, Pythonic! 冗余不做,日子甭过!备份不做,十恶不赦!
KM keep growing environment culture which promoting organization be learnning!
俺: http://zoomquiet.io
许: http://creativecommons.org/licenses/by-sa/2.5/cn/

damon.chen

unread,
May 24, 2014, 7:14:57 AM5/24/14
to golang...@googlegroups.com
大概有多少运行效率的提升?

十几万行的代码,如果出来bug,不知道还容易不容易找得到。

整个东西,值得期待。



2014-05-24


于 2014/5/24 15:17, bookaa bookaa 写道:
这个工具可以简称为 Python to GoLang,把 Python 源码自动转化为 Go 源码,然后可编译为独立的可执行文件。(附:Go语言是新兴的类C可编译语言,开源)

大家一般把 Python 理解为是一个脚本语言,虽然开发效率高,但运行速度慢,解释执行,不可编译,依赖解释环境,不方便发布。

多年以来,无 数先烈做了大量的努力工作,试图提高 Python 的运行速度,有 pypy,Cython 等。但结果都不理想。

我认 为:Python 实际上规定了一套开发规范。用这套规范,你可以快速地表达你的逻辑思想。它并没有限定必须是脚本语言,不可编译。只不过现在只有一个用C实现的 Python 解释器,简称 CPython。于是我们就想当然地认为,Python是脚本语言,不能编译。

我认为,一个 软件,不管用什么编程语言,都是表达一些逻辑。它们之间应该是可以转化的。经过几个月的努力,就有了现在这个工具。

我的思 想:Python 是开发效率最高的编程语言。无数天才的程序员都狂热地喜欢 Python 和 Go。现在有了本软件,使 Python 可编译,使 Python 可提速,Python 语言不再有缺点!从此我们再也不需要学 C 和 C++ 了!Python 获得了新生!

有人问,为什 么要把 Python 转为 Go ,直接用 Go 开发不就行了?
首 先,Python 开发效率极高,而 Go 为了简洁缺失很多有用的内容。我不建议把 Go 作为主开发语言。其次,Python 的第三方库非常丰富,而 Go 作为新兴语言,如果能把 Python 的所有库都继承下来,必大大提高 Go 的地位。

本软件有两种 工作方式:
方式一:如果 你的产品只在已安装 Python 的环境下运行,或者为了方便分析调试,可以用方式一。这时,只会转化主工程文件目录下的py文件。对于 import 的系统模块则不作转化处理。一般一行 Python 代码转化后变成 1.5 行 Go 代码。转化后代码清晰明了,基本保持原函数名,变量名,调用关系。方便再修改优化。
方式二:全转 化。这会试图把所有 import 用到的系统模块全部转化为 Go 代码。这通常会产生超过十五万行 Go 代码。优点是这样转化后编译生成的可执行文件不再需要 Python 环境,单独一个 exe 加 python27.dll 加可能的 pyd 文件就可以运行了。方便发布。

有人说,你为 什么需要 python27.dll ? 如果带 dll 的话,我一行 exec 就全解决了,何必这么麻烦呢?
如果用 exec的话,还是解释执行的。达不到提速和安全的目的。
我的做法,是 把每一个函数都变成一个对应的Go函数。每一个变量都变成一个对应的Go源码下的变量。我会尽量智能识别变量类型。如果发现变量是 integer 类型,就会直接使用 go 的 int ,优化了速度。对于不能识别的变量,或 list, tuple等,则用 PyObject ,对应的操作也只能调用 python27.dll 中的对应函数。
还 有,Python 的一大优势是库非常丰富。大量的库实际上都是用C编译而来的 pyd 文件。这些pyd文件实际上是dll格式,它们依赖 python27.dll。

有了本软件的 转化,大量的 python 库都可以在 go 下运行了。极大地丰富了 go 的功能。比如 go 至今没有好的 gui 库,现在就可以借用 Python 间接实现 gui 开发。

整个项目用了 我多半年时间,约3万行代码。主要编程语言用 Python,辅以一些 Go 和 C 代码。如你所想,本软件可以转化自身。本软件的转化过程中,直接面对复杂的 Python 逻辑,把每一个知识点都要细致地从 Python 源码层转化为 PyObject层,再用 go 语言实现,工作量非常大。特别是一些 Python 中有而 Go 中没有的概念,处理起来非常有难度。比如 try/exception, yield, var scope, no use var, var declare等。

本项目准备以 开源形式发布。源码稍后提供。暂只支持 Python 2.7.6 不支持 Python3。已经在 Win32,Win64 平台上测试通过。相信也可以很容易地运行在所有支持 Python 和 Go 的平台。Python 是用C实现且开源,Go也是用C实现且开源,几乎可以运行于所有平台。有了这个 Python to Go ,相信将来 Python+Go 会成为主流的开发方式。

作为本转化工 具的第一个样例,一个我写的英语听力小工具 http://pan.baidu.com/s/1o6x5zRk 内有 Python 源码,和转化后的 go 源码 (17万行)。

现在可以提供 的服务:
1。协助你把 Python 源码转化为可编译的 Go 源码。方便部署,更安全,运行速度更快。
2。协助你对 Python 项目优化提速。
3。演讲,传 达我的思想。 
刘涛涛 987...@qq.com

yuanhang zheng

unread,
May 24, 2014, 7:17:27 PM5/24/14
to golang...@googlegroups.com

好东西!有几个问题。
1.做了性能测试,转换之后速度有多大的提升?
2.有源码的链接吗?

郑远航

--

Bluek404

unread,
May 25, 2014, 1:10:22 AM5/25/14
to golang...@googlegroups.com
貌似转换后会很大啊……
如果转换后能单文件运行就好了

于 2014年05月24日 15:17, bookaa bookaa 写道:
这个工具可以简称为 Python to GoLang,把 Python 源码自动转化为 Go 源码,然后可编译为独立的可执行文件。(附:Go语言是新兴的类C可编译语言,开源)

大家一般把 Python 理解为是一个脚本语言,虽然开发效率高,但运行速度慢,解释执行,不可编译,依赖解释环境,不方便发布。

多年以来,无 数先烈做了大量的努力工作,试图提高 Python 的运行速度,有 pypy,Cython 等。但结果都不理想。

我认 为:Python 实际上规定了一套开发规范。用这套规范,你可以快速地表达你的逻辑思想。它并没有限定必须是脚本语言,不可编译。只不过现在只有一个用C实现的 Python 解释器,简称 CPython。于是我们就想当然地认为,Python是脚本语言,不能编译。

我认为,一个 软件,不管用什么编程语言,都是表达一些逻辑。它们之间应该是可以转化的。经过几个月的努力,就有了现在这个工具。

我的思 想:Python 是开发效率最高的编程语言。无数天才的程序员都狂热地喜欢 Python 和 Go。现在有了本软件,使 Python 可编译,使 Python 可提速,Python 语言不再有缺点!从此我们再也不需要学 C 和 C++ 了!Python 获得了新生!

有人问,为什 么要把 Python 转为 Go ,直接用 Go 开发不就行了?
首 先,Python 开发效率极高,而 Go 为了简洁缺失很多有用的内容。我不建议把 Go 作为主开发语言。其次,Python 的第三方库非常丰富,而 Go 作为新兴语言,如果能把 Python 的所有库都继承下来,必大大提高 Go 的地位。

本软件有两种 工作方式:
方式一:如果 你的产品只在已安装 Python 的环境下运行,或者为了方便分析调试,可以用方式一。这时,只会转化主工程文件目录下的py文件。对于 import 的系统模块则不作转化处理。一般一行 Python 代码转化后变成 1.5 行 Go 代码。转化后代码清晰明了,基本保持原函数名,变量名,调用关系。方便再修改优化。
方式二:全转 化。这会试图把所有 import 用到的系统模块全部转化为 Go 代码。这通常会产生超过十五万行 Go 代码。优点是这样转化后编译生成的可执行文件不再需要 Python 环境,单独一个 exe 加 python27.dll 加可能的 pyd 文件就可以运行了。方便发布。

有人说,你为 什么需要 python27.dll ? 如果带 dll 的话,我一行 exec 就全解决了,何必这么麻烦呢?
如果用 exec的话,还是解释执行的。达不到提速和安全的目的。
我的做法,是 把每一个函数都变成一个对应的Go函数。每一个变量都变成一个对应的Go源码下的变量。我会尽量智能识别变量类型。如果发现变量是 integer 类型,就会直接使用 go 的 int ,优化了速度。对于不能识别的变量,或 list, tuple等,则用 PyObject ,对应的操作也只能调用 python27.dll 中的对应函数。
还 有,Python 的一大优势是库非常丰富。大量的库实际上都是用C编译而来的 pyd 文件。这些pyd文件实际上是dll格式,它们依赖 python27.dll。

有了本软件的 转化,大量的 python 库都可以在 go 下运行了。极大地丰富了 go 的功能。比如 go 至今没有好的 gui 库,现在就可以借用 Python 间接实现 gui 开发。

整个项目用了 我多半年时间,约3万行代码。主要编程语言用 Python,辅以一些 Go 和 C 代码。如你所想,本软件可以转化自身。本软件的转化过程中,直接面对复杂的 Python 逻辑,把每一个知识点都要细致地从 Python 源码层转化为 PyObject层,再用 go 语言实现,工作量非常大。特别是一些 Python 中有而 Go 中没有的概念,处理起来非常有难度。比如 try/exception, yield, var scope, no use var, var declare等。

本项目准备以 开源形式发布。源码稍后提供。暂只支持 Python 2.7.6 不支持 Python3。已经在 Win32,Win64 平台上测试通过。相信也可以很容易地运行在所有支持 Python 和 Go 的平台。Python 是用C实现且开源,Go也是用C实现且开源,几乎可以运行于所有平台。有了这个 Python to Go ,相信将来 Python+Go 会成为主流的开发方式。

作为本转化工 具的第一个样例,一个我写的英语听力小工具 http://pan.baidu.com/s/1o6x5zRk 内有 Python 源码,和转化后的 go 源码 (17万行)。

现在可以提供 的服务:
1。协助你把 Python 源码转化为可编译的 Go 源码。方便部署,更安全,运行速度更快。
2。协助你对 Python 项目优化提速。
3。演讲,传 达我的思想。 
刘涛涛 987...@qq.com

Leo Jay

unread,
May 25, 2014, 2:13:37 AM5/25/14
to golang...@googlegroups.com
感觉你的这个项目跟 Nuitka [1] 很像。只不过它是转成 C++,你是转成 Go
方便做个比较吗?性能方面,使用便利性方面。

[1] http://nuitka.net/pages/overview.html

2014-05-24 15:17 GMT+08:00 bookaa bookaa <ror...@gmail.com>:
> --
> --
> 官网: http://golang-china.org/
> IRC: irc.freenode.net #golang-china
> @golangchina
> ---
> 您收到此邮件是因为您订阅了Google网上论坛中的“Golang-China”论坛。
> 要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到golang-china...@googlegroups.com
> 要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/golang-china/338ead22-d9df-4854-bd88-89ced7019047%40googlegroups.com
> 要查看更多选项,请访问https://groups.google.com/d/optout



--
Best Regards,
Leo Jay

Bluek404

unread,
May 25, 2014, 3:40:59 AM5/25/14
to golang...@googlegroups.com
再来个转成C的就完美了

lidashuang

unread,
May 25, 2014, 3:43:04 AM5/25/14
to golang...@googlegroups.com
 会有人用于实际线上项目吗?

-- 
lidashuang
已使用 Sparrow

已使用 Sparrow
您收到此邮件是因为您订阅了 Google 网上论坛的“Golang-China”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到golang-china...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/d/optout

daniel

unread,
May 25, 2014, 10:22:47 PM5/25/14
to golang...@googlegroups.com
感觉这种东西就是看着炫,实际意义不大,如果真的用在项目中,维护工作会成倍整长,如果有性能问题会更麻烦
> 要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/golang-china/F7D4A41B864645EA86F29D5D0B04F495%40gmail.com
> 要查看更多选项,请访问https://groups.google.com/d/optout

CL Lam

unread,
May 25, 2014, 10:51:14 PM5/25/14
to golang...@googlegroups.com
这是一个神奇的网站




------------------------------------------------------------
侠之大者,为国为民!


lihui

unread,
May 26, 2014, 2:06:44 AM5/26/14
to golang-china
等待dropbox的 llvm版本。


2014-05-26 10:22 GMT+08:00 daniel <aro...@gmail.com>:

刘鑫

unread,
May 26, 2014, 2:15:23 AM5/26/14
to golang...@googlegroups.com
go 自己吐槽点也挺多,而且在编译器角度,go毕竟还是前端,我个人毕竟赞同python to llvm 的方向,go to llvm 的项目现在也有人做了。





--

……

劉鑫·矮人工匠
Mars Liu @ Dwarf Artisan

MuSheng Chen

unread,
May 26, 2014, 3:13:06 AM5/26/14
to golang...@googlegroups.com
我之前想做python to all的,不過python to js也沒完成,生活壓力山大啊.


Yang Fan

unread,
May 26, 2014, 3:33:26 AM5/26/14
to golang...@googlegroups.com
针对特定语言优化的JIT效果肯定最好,用LLVM就是个偷懒的解决方案,而把Go当后端来用就更蛋疼了。


2014-05-26 14:15 GMT+08:00 刘鑫 <marc...@gmail.com>:



--
Regards,
Fan Yang

qq510371827

unread,
May 26, 2014, 4:30:26 AM5/26/14
to golang...@googlegroups.com
russ cox的一个幻灯片里面也提到过类似的话题,Go需要研究的一些问题:

Plenty of research questions about how to implement Go well.
  • Concurrency
  • Polymorphism
  • Garbage collection

--

asaka

unread,
May 26, 2014, 6:27:05 AM5/26/14
to golang...@googlegroups.com, qq510371827
为何不用cython?
-- 
asaka
Sent with Airmail

开启 2014年5月26日 at 下午4:30:24, qq510371827 (qq510...@gmail.com) 写:

Able

unread,
May 26, 2014, 8:19:21 AM5/26/14
to golang...@googlegroups.com



在 2014年5月26日 下午3:33,Yang Fan <miss...@gmail.com>写道:
针对特定语言优化的JIT效果肯定最好,用LLVM就是个偷懒的解决方案,而把Go当后端来用就更蛋疼了。
你们这个时候提到的前端和后端都是什么意思? 
 

Yang Fan

unread,
May 26, 2014, 10:05:15 AM5/26/14
to golang...@googlegroups.com
编译原理上的前端后端。





--
Regards,
Fan Yang

顾俊俊

unread,
May 26, 2014, 11:29:27 AM5/26/14
to golang...@googlegroups.com
great job!

于 2014/5/24 15:17, bookaa bookaa 写道:
这个工具可以简称为 Python to GoLang,把 Python 源码自动转化为 Go 源码,然后可编译为独立的可执行文件。(附:Go语言是新兴的类C可编译语言,开源)

大家一般把 Python 理解为是一个脚本语言,虽然开发效率高,但运行速度慢,解释执行,不可编译,依赖解释环境,不方便发布。

多年以来,无 数先烈做了大量的努力工作,试图提高 Python 的运行速度,有 pypy,Cython 等。但结果都不理想。

我认 为:Python 实际上规定了一套开发规范。用这套规范,你可以快速地表达你的逻辑思想。它并没有限定必须是脚本语言,不可编译。只不过现在只有一个用C实现的 Python 解释器,简称 CPython。于是我们就想当然地认为,Python是脚本语言,不能编译。

我认为,一个 软件,不管用什么编程语言,都是表达一些逻辑。它们之间应该是可以转化的。经过几个月的努力,就有了现在这个工具。

我的思 想:Python 是开发效率最高的编程语言。无数天才的程序员都狂热地喜欢 Python 和 Go。现在有了本软件,使 Python 可编译,使 Python 可提速,Python 语言不再有缺点!从此我们再也不需要学 C 和 C++ 了!Python 获得了新生!

有人问,为什 么要把 Python 转为 Go ,直接用 Go 开发不就行了?
首 先,Python 开发效率极高,而 Go 为了简洁缺失很多有用的内容。我不建议把 Go 作为主开发语言。其次,Python 的第三方库非常丰富,而 Go 作为新兴语言,如果能把 Python 的所有库都继承下来,必大大提高 Go 的地位。

本软件有两种 工作方式:
方式一:如果 你的产品只在已安装 Python 的环境下运行,或者为了方便分析调试,可以用方式一。这时,只会转化主工程文件目录下的py文件。对于 import 的系统模块则不作转化处理。一般一行 Python 代码转化后变成 1.5 行 Go 代码。转化后代码清晰明了,基本保持原函数名,变量名,调用关系。方便再修改优化。
方式二:全转 化。这会试图把所有 import 用到的系统模块全部转化为 Go 代码。这通常会产生超过十五万行 Go 代码。优点是这样转化后编译生成的可执行文件不再需要 Python 环境,单独一个 exe 加 python27.dll 加可能的 pyd 文件就可以运行了。方便发布。

有人说,你为 什么需要 python27.dll ? 如果带 dll 的话,我一行 exec 就全解决了,何必这么麻烦呢?
如果用 exec的话,还是解释执行的。达不到提速和安全的目的。
我的做法,是 把每一个函数都变成一个对应的Go函数。每一个变量都变成一个对应的Go源码下的变量。我会尽量智能识别变量类型。如果发现变量是 integer 类型,就会直接使用 go 的 int ,优化了速度。对于不能识别的变量,或 list, tuple等,则用 PyObject ,对应的操作也只能调用 python27.dll 中的对应函数。
还 有,Python 的一大优势是库非常丰富。大量的库实际上都是用C编译而来的 pyd 文件。这些pyd文件实际上是dll格式,它们依赖 python27.dll。

有了本软件的 转化,大量的 python 库都可以在 go 下运行了。极大地丰富了 go 的功能。比如 go 至今没有好的 gui 库,现在就可以借用 Python 间接实现 gui 开发。

整个项目用了 我多半年时间,约3万行代码。主要编程语言用 Python,辅以一些 Go 和 C 代码。如你所想,本软件可以转化自身。本软件的转化过程中,直接面对复杂的 Python 逻辑,把每一个知识点都要细致地从 Python 源码层转化为 PyObject层,再用 go 语言实现,工作量非常大。特别是一些 Python 中有而 Go 中没有的概念,处理起来非常有难度。比如 try/exception, yield, var scope, no use var, var declare等。

本项目准备以 开源形式发布。源码稍后提供。暂只支持 Python 2.7.6 不支持 Python3。已经在 Win32,Win64 平台上测试通过。相信也可以很容易地运行在所有支持 Python 和 Go 的平台。Python 是用C实现且开源,Go也是用C实现且开源,几乎可以运行于所有平台。有了这个 Python to Go ,相信将来 Python+Go 会成为主流的开发方式。

作为本转化工 具的第一个样例,一个我写的英语听力小工具 http://pan.baidu.com/s/1o6x5zRk 内有 Python 源码,和转化后的 go 源码 (17万行)。

现在可以提供 的服务:
1。协助你把 Python 源码转化为可编译的 Go 源码。方便部署,更安全,运行速度更快。
2。协助你对 Python 项目优化提速。
3。演讲,传 达我的思想。 
刘涛涛 987...@qq.com
Reply all
Reply to author
Forward
0 new messages