易截截图软件、单文件、免安装、纯绿色、仅160KB

Python解释执行原理

谈到了Python语句的两种执行方式,实际上,这两种运行方式在本质 上是相同的,它们都是由解释器来解释执行我们提供的Python语句。 这里所说的解释执行是相对于编译执行而言的。我们知道,使用诸如 C或C++之类的编译性语言编写的程序可以从源文件转换成计算机使用 的机器语言, 经连接器连接后形成二进制可执行文件。当我们运行二进制可执行程 序的时候,因为已经编译好了,所以加载器软件把二进制程序从硬盘 载入内存中并运行。
与之不同,Python语言写的程序不需要编译成二进制代码,它可以直 接从源代码运行程序。当我们运行Python文件程序的时候, Python解释器把源代码转换成中间形式:字节码,然后再由Python虚 拟机来执行这些字节码,如图5所示。 这样的话,我们就用不着担心程序的编译,库的连接加载等问题了, 所有这些工作都由Python虚拟机代劳了。 对于Python的解释语言特性,我们要一分为二的看待。一方面,每次 运行时都要进行转换成 字节码,然后再由虚拟机把字节码转换成机器语言,最后才能在硬件 上运行。较之于编译性 编程 语言,每次运行都会多出两道工序,所以它的性能会受到影响。另一 方面,由于不用关心程 序的编译以及库的连接等问题,所以开发工作会变得更轻松;同时虚 拟机距离物理机器更远 了, 所以Python程序更加易于移植,实际上无需改动就能在多种平台上运 行。
1. 在具体计算机上实现一种语言,首先要确定的是表示该语言语义解释 的虚拟计算机,一个关键的问题是程序执行时的基本表示是实际计算 机上的机器语言还是虚拟机 的机器语言。这个问题决定了语言的实现。根据这个问题的回答,可 以将程序设计语言划分为两大类:编译型语言和解释型语言。
2. 由编译型语言编写的源程序需要经过编译、汇编和链接才能输出目标 代码,然后机器执行目标代码,得出运行结果,目标代码由机器指令 组成,一般不能独立运行, 因为源程序中可能使用了某些汇编程序不能解释引用的库函数,而库 函数代码又不在源程序中,此时还需要链接程序完成外部引用和目标 模块调用的链接任务,最后 输出可执行代码。C、C++、Fortran、Pascal、Ada都是编译实现的。
3. 解释型语言的实现中,翻译器并不产生目标机器代码,而是产生易于 执行的中间代码,这种中间代码与机器代码是不同的,中间代码的解 释是由软件支持的,不能直接 使用硬件,软件解释器通常会导致执行效率较低。用解释型语言编写 的程序是由另一个可以理解中间代码的解释程序执行的


相关文档:

关于Python中函数重载问题的思考

全文来自:IT工程技术网 http://www.systhinker.com/html/91/n-11591.html
昨天和飞天舞者讨论静态类型语言和动态类型语言优劣比较的时候,说到Python没有重载机制的问题。
后来想想挺有意思的,把思考的经过记录下来,欢迎拍砖。
重载(overload)和覆盖(override),在C++,Java,C#等静态类型语言类型语言中,这两个 ......

Python字典按value排序

myDict = { 'item1' : [ 7, 1, 9], 'item2' : [8, 2, 3], 'item3' : [ 9, 3, 11 ] }
def sortDic(Dict,valuePostion):
return sorted(Dict.items(),key=lambda e:e[1][valuePostion])
//按value的第3个值排序
sortDic(myDict,2)
[('item2', [8, 2, 3]), ('item1', [7, 1, 9]), ('item3', [9, 3, 11])]
//按value的第 ......

Python中RE模块的应用

      Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。Python 1.5之前版本则是通过 regex 模块提供 Emecs 风格的模式。Emacs 风格模式可读性稍差些,而且功能也不强,因此编写新代码时尽量不要再使用 regex 模块,当然偶尔你还是可能在老代码里发现其踪影。
  & ......

Python三目运算,and or陷阱

在C语言中,三目运算经常用到(cond?a:b),非常的简洁,而在Python中不支持这种语法。
但是,可以用Python中and or来实现(这里是有陷阱的,下面会讲到)
我们来看下面几个表达式
>>> False
or 1
1
>>> False
or 0
0
>>> True or
0
True
>>> True
and 1
1
>> ......

python中eval, exec, execfile,和compile


eval(str [,globals [,locals ]])函数将字符串str当成有效Python表达式来求值,并返回计算结果。
同样地, exec语句将字符串str当成有效Python代码来执行.提供给exec的代码的名称空间和exec语句的名称空间相同.
最后,execfile(filename [,globals [,locals ]])函数可以用来执行一个文件,看下面的例子:
>>> ev ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号