这篇文章主要介绍“Python是如何运作的”,在日常操作中,相信很多人在Python是如何运作的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python是如何运作的”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
Python最初是Guido Van Rossum在业余时开发的一个项目,于1991年首次发布。作为一门通用语言,Python为Netflix和Instagram等许多公司提供了强大支持。在一次采访中,Guido将Python与Java/Swift等语言进行了比较,他表示Java/Swift对于日常工作即是编程的软件开发人员是一个不错的选择,而Python针对的目标用户是日常工作与软件开发无关的人,他们编写代码主要是为了处理数据。
Python是一种解释型的高级通用性编程语言,具有动态类型和垃圾回收功能。
解释型语言
用C / C ++编写程序时,必须进行编译。编译是将人类可理解的代码转换为机器可理解的代码即“机器代码”。机器代码是CPU可直接执行指令的基本形式。成功编译后,代码生成一个可执行文件。执行此文件,代码中的操作将逐步运行。
尽管也需要编译这一步骤,但在大多数情况下,Python是一种解释型语言,而非编译型语言。首先将以.py文件编写的Python代码编译为字节码(后文将详细讨论),然后以.pyc或.pyo格式存储。
Python将源代码转换为字节码,而不像C ++等转换为机器代码。该字节码是可由解释器执行的低级指令集。Python解释器在大多数PC中安装在/usr/local/bin/python3.8路径下。字节码指令在虚拟机而非CPU上执行。
为什么选择解释型语言?
解释型语言具有独立于平台的一大优势。只要Python字节码和虚拟机版本相同,Python字节码就可以在任何平台(Windows,MacOS等)上执行。
Python的另一个优点是动态类型。在C ++等静态类型语言中,必须先声明变量类型,并在编译时检查所有差异(如添加字符串和整数)。但在像Python这样的强类型语言中,检查变量类型和所执行操作的有效性由解释器来完成。
解释型语言的缺点
动态类型提供给代码很大的自由度,但同时提高了代码的风险性,有时会难以调试。
Python经常被指责“速度慢”。这种说法是相对的,也存在很多争议,但之所以“慢”是因为解释器需要做额外工作来将字节码指令转换成可以在机器上执行的指令形式。StackOverflow上的一个帖子对此的解释更易理解:
如果你能用自己的母语和别人交谈,那通常要比口译员把你的语言翻译成其他语言让对方理解要快得多。
垃圾回收究竟是什么?
在早期编程语言中,内存分配主要依靠手动操作。很多时候,当变量不再使用或在程序的其他地方引用时,需要手动从内存中清除。垃圾回收站代替人工进行此项工作,无需任何操作即可自动释放空间。内存管理有两种方式:
简化方式是跟踪某对象的引用次数。当该数字下降到0时,删除该对象。这种方式被称为“引用计数”。在Python中无法禁用此功能。
在对象引用自身或两个对象相互引用的情况下,“生成垃圾回收”线程可以发挥作用。这是传统的引用计数所无法解决的。
什么是__pycache__?
在个人项目中或GitHub上,可能经常看到名为__pycache__的文件夹被自动创建。
/文件夹-_pycache_-preprocess.cpython-36.pyc-preprocess.py
如您所见,自动创建的文件名与文件夹外部的文件名相同,均为_pycache_。.pyc扩展名表示该文件包含preprocess.py的字节码。cpython表示解释器的类型。CPython意味着解释器是用C语言实现的。同样,JPython是用Java实现的Python解释器。
到此,关于“Python是如何运作的”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。