python算不上编程语言,python算编程语言么

dfnjsfkhak 36 0

大家好,今天小编关注到一个比较意思的话题,就是关于python算不上编程语言问题,于是小编就整理了1个相关介绍Python算不上编程语言的解答,让我们一起看看吧。

  1. 既然Python是用C实现的,那为什么Python不能直接生成exe?

既然Python是用C实现的,那为什么Python不能直接生成exe

python不是用C实现的,而是利用了CPython解释器使python的运行效率可以接近C程序。至于为什么不直接生成exe,因为没有必要啊,exe是C程序编译之后的,意味着每一次执行python,后端的C解释器都需要将目前的python代码翻译成C代码,再执行编译、检查链接等等一系列操作,之后把所有的库静态或者动态打包好形成一个exe来供用户执行,这个效率未免太低了吧?而且在调用库的时候要如何选择链接方式?使用静态链接的话编译出来的文件会很大,动态链接又不能保证每一个用户都可以执行,不能保证库文件已经正确安装,导致跨平台性不好。

Python运行原理是运行在C编写的Python虚拟机上通过opcode来决定python需要执行的指令,并且可以通过创建线程的方式来提高python的运行效率。只要解释器生成了对应的机器码,虚拟机线程可以立刻进入执行状态,效率比编译高多了,无论是暂停、修改还是重新运行速度非常快。

python算不上编程语言,python算编程语言么-第1张图片-芜湖力博教育咨询公司
图片来源网络,侵删)

Python是解释型语言,也可以打包成exe,只不过需要把解释器一起打包进去,所以打包出来的exe文件相对比较大一点。但是这完全不影响使用。我写了很多实用的小工具,用的wxpython写的GUI,用pyinstaller打包成exe只有十几M,用tkinter可以做到10M以内。打成exe是方便用户直接使用,不用自己装python环境了。现在一个安卓手机app几十几百M多的是,电脑还在乎这点空间?

可以直接生成exe,但python的依赖很多,直接生成exe其实就是把依赖和环境打包成一个壳,体积较大(即使一个小功能可能几百兆),而且执行效率也不高,所以通常都是在开发环境下解释执行。

【十年独立游戏开发者,关注者粉丝,可向我提问,尽量回答】

python算不上编程语言,python算编程语言么-第2张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

我觉得你需要搞清楚一个概念,runtime. exe 只是一个壳子,exe 可以把整个just-in-time编译器和代码全部打包。看上去就是一个exe,但和你想象的exe不是一回事。程序分为三种,一种比如c,c++, rust,不需要JIT (just-in-time)编译器,不需要 runtime。第二种是不需要JIT 但需要runtime 比如 go, 它的gc 是runtime来实现的。第三种是需要JIT和runtime 比如java, .net, j***ascript, python 等等。JIT 的任务是产生中间代码,j***a 叫byte code, .net 叫 IL. 仅仅打包为 exe 不代表可以确定是三种中的任何一种。比如你把 .net 的exe 反编译,得到的代码甚至不是IL而是稍稍变了一点样子的源代码。我们知道机器是不需要函数名的,反编译看到函数名说明什么?说明本来打包为exe就没怎么动你的代码,仅仅是做了语法分析和linking,但是没有真正意义上向c++那样编译而产生机器执行指令。这一点来讲,j***a, .net, python, j***ascript 其实区别只是是不是強类型,没有哪个真正发布了“编译”,应该是 比compile 原始但比transcoding更复杂一点的那种事。

到此,以上就是小编对于python算不上编程语言的问题就介绍到这了,希望介绍关于python算不上编程语言的1点解答对大家有用

python算不上编程语言,python算编程语言么-第3张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

标签: python 打包 exe