Python对象探究-柯懂湘-2018-07-08-19_00_00.pdf
ThenameoftheDepartmentBeijingForestStudio
北京理工大学信息系统及安全对抗实验中心部门名称
Python对象探究
硕士研究生柯懂湘
2018年07月08日
内容提要
•背景知识
–编译型语言/解释型语言
–静态类型/动态类型
–类、对象、实例
•Python对象探究
–Python对象分类
–Python对象是什么样的
–Python类型对象是什么样的
–Python多态的实现
–Python垃圾回收机制
2
背景知识
背景知识
编译型语言
•编译型语言
–编译型语言的首先将源代码编译生成机器码,再由机器运
行机器码(二进制)。
–代表语言:C/C++
源程序编译器机器码
4
解释型语言
•解释型语言
–由解释器来执行源代码
–代表语言:python、java
•解释器执行源代码的方式
–解释器直接运行高级编程语言(shell)
–解释器首先将高级语言转换为字节码,然后解释器运行这些
字节码(python)
–以解释器包含的编译器对高级语言编译,并指示处理器运行
编译后的程序(JIT)
5
动态类型与静态类型
•动态类型语言
–是指在运行期间才去做数据类型检查的语言。在用动态语言
编程时,不用给变量指定数据类型,该语言会在你第一次赋
值给变量时,在内部将数据类型记录下来。(python)
•静态类型语言
–与动态类型语言刚好相反,它的数据类型检查发生在在编译
阶段,也就是说在写程序时要声明变量的数据类型。
(C/C++、JAVA)
6
类、对象、实例
•类(class)
–表示某种类型
–包含属性和方法
•对象(object)
–具有状态和行为的实体
•实例(instance)
–对象相对于类的称呼
•每个对象(Object)都是某个类(class)的一个实例
(instance).
7
Python对象探究
Python对象探究
Python对象探究
•提问:下面代码的输出结果是什么?
9
Python对象探究
•Python的动态类型机制
–变量名只是对象的一个引用
–变量名没有类型,只有对象才有类型
10