python是否编译成一些字节代码,或者每次都像php / asp那样动态呈现?
从我的阅读中我读到它有自己的字节码格式,所以我认为它就像java / .net,它编译成中间语言/字节码。
所以在这方面更有效的是,对吗?
答案 0 :(得分:1)
鉴于语言X,以及服务器可以了解它的方式(模块或其他)或适当的“中间”CGI程序mX,可以对此mX进行编程,以便它确实直接解释X中的纯文本脚本(如php),或字节码编译代码(最初用X编写)。因此,如果存在适当的mX,它可以是两种选择。但我认为最常见的一个与php和asp相同。
处理字节码比解释脚本更有效(即使现代解释器没有以简单的方式实现并使用“技巧”来提高性能)
答案 1 :(得分:1)
您可以轻松查看字节码:
>>> import dis
>>> dis.dis(lambda x: x*2)
1 0 LOAD_FAST 0 (x)
3 LOAD_CONST 0 (2)
6 BINARY_MULTIPLY
7 RETURN_VALUE
>>>
答案 2 :(得分:0)
您可以将python编译为PYC(http://effbot.org/zone/python-compile.htm)。但是,只是执行一个python脚本不会自动编译,因此使用python的CGI Web设置不会自动编译。
答案 3 :(得分:0)
当你在Python中使用一个模块时,它(通常)会被编译(如果它还没有)。例如,如果您只使用.py
文件部署了Django应用程序,那么当应用程序导入模块时,它们将被编译(并输出为.pyc
个文件)。
答案 4 :(得分:0)
导入时,Python模块会“编译”到.pyc
个文件。这与编译Java或.NET不同,剩下的内容与您的源几乎有1-1对应关系;这意味着下次不必解析文件,但这就是全部。
您可以使用compile
或compileall
模块预编译一组脚本,或编译一个原本无法编译的脚本。我不认为从命令行(或从CGI)运行脚本会使用.pyc
。