- 解释型语言和编译型语言
计算机是不能够识别高级语言的,所以当我们运行一个高级语言程序时,就需要一个“翻译机”来从事把高级语言转变成计算机能够读懂的机器语言的过程。这个过程分为两类,第一种是编译,第二种是解释
- 编译型语言在程序执行之前,先会通过编译器对程序执行一个编译的过程,把程序变成机器语言。运行时就不用翻译,而是直接运行就可以了,最典型的是C语言
- 解释型语言就是没有这个编译的过程,而是在程序运行的时候,通过解释器对程序逐行做出解释,然后直接运行,例如ruby
- 还有第三种,是Java这种,先编译后解释。
我们的Python也是属于那种先编译后解释的语言,当Python程序运行时,编译结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。
当Python程序第二次运行时,首先程序会在硬盘上寻找对应的pyc文件,如果找到,则直接载入,否则就重复上面的过程
- 数据类型的检查:动态语言在编译时变量的数据类型就已经确定,多数静态语言类型要求在使用变量之前必须声明数据类型;在运行时,确认数据类型的语言,变量使用之前不需要声明类型,通过变量的类型是被赋值的那个值类型
- 强弱类型:强类型语言,一个变量不经过强制转换,它永远是这个数据类型,不允许隐式的类型装换,举个例子:如果你定义了一个double类型变量a,不经过强制类型转换那么程序int b = a无法通过编译。典型代表是Java;弱类型语言:它与强类型相反,允许编译器进行隐式类型转换
- Python执行的过程:
所以可以认定,Python它面向对象更彻底了,比JAVA中的一切皆对象更彻底,JAVA中有class,也就是类的概念,object是class的一个实例。但是Python中函数和类也是对象