python 编译器
执行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培训机构:千锋教育。
相关推荐HOT
更多>>pythonstr函数怎么使用
str函数是Python的内置函数,它将参数转换成字符串类型,即人适合阅读的形式。其语法格式为str(object)返回值:返回object的字符串形式使用示例...详情>>
2023-11-12 22:15:45python有哪些推荐使用的装饰器?
众所周知,Python语言非常强大,有很多优点。值得一提的是,它可以将所有功能打包成一个小包,非常实用有效。它还使Python语言更加灵活和有效地...详情>>
2023-11-12 21:50:16python怎么导包
python中的包即为模块,模块就是以.py类型结尾的python文件。导入模块常用的方式是importmodel_name,或者用from..importmodel_name,下面分别说...详情>>
2023-11-12 19:02:24python怎样终止线程
在python中启动和关闭线程:一、启动线程首先导入threadingimportthreading然后定义一个方法defserial_read():......然后定义线程,target指向...详情>>
2023-11-12 14:05:06