千锋教育-做有情怀、有良心、有品质的职业教育机构

当前位置:首页  >  技术干货  >  Python技术干货  > python 编译器

python 编译器

来源:千锋教育
发布时间:2023-11-08 05:32:22
分享

执行pythondemo.py后,将会启动Python的解释器,然后将demo.py编译成一个字节码对象PyCodeObject。

有的人可能会很好奇,编译的结果不应是pyc文件吗,就像Java的class文件,那为什么是一个对象呢,这里稍微解释一下。

在Python的世界中,一切都是对象,函数也是对象,类型也是对象,类也是对象(类属于自定义的类型,在Python2.2之前,int,dict这些内置类型与类是存在不同的,在之后才统一起来,全部继承自object),甚至连编译出来的字节码也是对象,.pyc文件是字节码对象(PyCodeObject)在硬盘上的表现形式。

在运行期间,编译结果也就是PyCodeObject对象,只会存在于内存中,而当这个模块的Python代码执行完后,就会将编译结果保存到了pyc文件中,这样下次就不用编译,直接加载到内存中。pyc文件只是PyCodeObject对象在硬盘上的表现形式。

这个PyCodeObject对象包含了Python源代码中的字符串,常量值,以及通过语法解析后编译生成的字节码指令。PyCodeObject对象还会存储这些字节码指令与原始代码行号的对应关系,这样当出现异常时,就能指明位于哪一行的代码。

以上内容为大家介绍了python编译器,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • python中日期与字符串如何相互转换? 在python的使用过程中我们会发现,如果编程的格式为一种形式,而我们输入的格式又是另外一种格式,那么这种情况下是不能计算的,要转换成相同格式才可以。在python中,有的时候为字符串内容,我们输入的
  • python中pop函数和remove函数的区别有哪些 其实python中不止pop一种移除函数,还有remove函数,他们在python的使用过程中有什么区别吗?本文小编就向大家介绍pop函数和remove函数在python中的使用区别。pop()默认删
  • python中list删除元素的方法有哪些? 我们在日常办公中,会遇到很多繁琐的事物及数据,如果把这些繁琐的东西列个表,通过列表的操作可以清晰直观的知道各个变量之间的对应数据,统计的数据也很准确。但是一旦出现错误,我们就要删除元素,更改内容。在p
  • python中如何分解质因数? 大家知不知道和质数相差一字的质因数是什么呢?其实质因数就是质数,质因数在数论指能整除给定正整数的质数。除1外,没有其他公共质数因子的两个正整数称为倒数质数。下面,小编就向大家介绍python中分解质因
  • 在python中如何打乱数据? 在玩python学习机器时,对于那种对随机性不太敏感的模型,理论上说可以不打乱。但敏感不敏感也跟数据量级,复杂度,算法内部计算机制都有关,目前并没有一个经纬分明的算法随机度敏感度列表。既然打乱数据并不
  • python为什么没有报错提示 python中没有报错提示的代码示例:defcount_words(filename):try:withopen(filename)asf_obj:contents=f_obj.read()excep