一.python执行原理和java执行原理有何区别?
Java 是编译型和解释型语言的结合体
Java程序的运行必须经过编写,编译,运行3个步骤。
1.编写:指编写源代码,生成.java的文件,
2.编译:编译器对源程序进行错误排查,生成.class的字节码文件,是一种二进制文件,因此java是一种在编译基础上进行解释运行的语言。
3.运行:java解释器把字节码翻译成机器代码,JVM负责解释执行java的字节码。
其中.class 字节码文件说明
参考:https://blog.csdn.net/imzhiyang/article/details/77920771
1)源码文件,.java
2)字节码文件,.class
image.png
Python解释型(脚本)语言
1.编写:.py文件
2.解释:.pyc文件,存储了字节码
python是一个解释型的语言,所以编译字节码不是一个强制的操作,事实上,编译是一个自动的过程,一般不会在意它的存在。python 源码不需要编译成二进制代码,它可以直接从源代码运行程序。当我们运行 python 文件程序的时候,python 解释器将源代码转换为字节码,然后再由 python 解释器来执行这些字节码。
其中.pyc字节码文件说明
参考:http://www.xumenger.com/01-python-pyc-20180521/
1)源码文件, .py
2)字节码文件,.pyc
image.png
二.导包
1.文件
image.png
2.a.py文件内容
image.png
测试1:通过from a import a_func方式
image.png image.png
测试2:通过import a 方式
image.png image.png
结论1:
通过上述两个case,可以看出:无论是from module import xxx方式还是import module方式,都会进行:module 模块公共的import
a.py文件
image.png
测试3:import a方式
image.png image.png
测试4:from a import a_func方式
image.png
image.png
结论2:从case3和case4测试可以看出,在函数中导入的module,只有在该函数被调用时,才会触发,否则不会被触发。
网友评论