python为什么是高级语言和解释型编程语言?它是如何粘合其它语言写的代码的?
学习python之初,不知道大家对于python有没有疑惑,应当是有的。这里我整理出来了自己的一些疑惑,供大家参考。
为什么python是高级程序设计语言
Java,C,C++这些语言是高级语言,因为他们能极大满足用户的需求,被用于设计开发一些环境。而python,在我心中好像就是个单纯的脚本语言......那么,为什么书上说python是高级语言呢?是我对python的误解吗?
要想解开这个谜底,首先需要了解一下什么是高级程序设计语言,这样才能‘对症下药’。
高级程序设计语言
高级程序设计语言,亦称‘算法语言’,简称‘高级语言’。是用易懂易写的方式编写程序的一种语言。
高级程序设计语言可摆脱计算机指令系统和机器语言随不同机器不同的约束,并设计相应的编译程序(也就是我们常说的‘编译器’),把适用于各种机器的高级语言编写的源程序转换为中央处理器能识别的目标代码。
从这里,我们明确了高级程序设计语言的几个特点:易懂,易写,跨平台,能将高级语言转化为CPU能直接识别的语言。
接下来,就来看看为什么python是高级程序设计语言:
- 首先,python简单易懂,人们学起来很简单。
- python易于编写,语法简单,还可以导入第三方库,被广泛使用。
- python可迁移,因为它不受底层条件的约束,在任何平台上都可运行,比如:LINUX、Windows等等。
- python文件执行时,python文件将被编译为python字节码,然后编译后的字节码由python虚拟机(Python Virtual Machine)执行。用户不用考虑底层的细节,比如管理程序的内存等等。
综上,python是一门高级程序设计语言。
python为什么是解释型编程语言
同上,了解一个东西是否是某个东西时,先弄明白‘某个东西’的本质是什么,再‘对症下药’。
解释型编程语言
相对于编译型语言而存在。源代码不是直接翻译成机器语言,而是先翻译成中间代码,执行时再由解释器翻译成机器语言进行解释运行。比如python,JS,shell等都是解释型编程语言。
了解了这些,再来看看为什么python是解释型语言:
上面浅谈了一下,python执行时是将python文件转化为python字节码,再由python虚拟机编译执行。
这里的python字节码就相当于图中的中间代码,当程序需要执行时,解释器一行一行读取代码,CPU紧接着将解释器翻译的机器代码接收处理,最后得到输出结果。这就是一个python文件执行的过程,因此,python是解释型语言。
用其他语言写的程序python能否调用?如何调用
python是一种“胶水语言”,能够将很多语言粘合在一起。那么,它是如何粘合的呢?
是通过一系列包的导入粘合的。
- python调用python,使用import或者from...import...
- python调用C写的dll,用ctypes包
- python调用exe,用subprocess包
- python调用C/C++,用Cython生成并调用pyd
- python调用Java,用jpype包。复杂的,可以尝试用pyjnius。
- python调用R代码,使用subprocess包
Python 的开发,是以 C/C++ 为基础的,所以针对 C/C++ 的调用最为方便。其它程序、动态链接库、代码的调用,都可以通过 EXE、DLL、C/C++ 三种渠道之一实现。Python 还是比较适合粘合各种程序与代码的。
参考文献
[1] 刘庆,刘红英,刘俊坤;《Python编程案例教程》,航空工业出版社
[2] 跑得快,《为什么用Python,高级的Python是一种高级编程语言》,博客园
[3] 《解释型语言》, 百度学术
[4] anonymity,《python是解释型语言吗》,PHP中文网
[5] 曲晓峰,《借石攻玉——如何用 Python 调用其他程序和代码》,知乎