什么是对象
对象的基本概念
Python中的所有事物都是以对象形式存在,从简单的数值类型,到复杂的代码模块,都是对象
对象(object)
即表示客观世界问题中的某个具体事物,又表示软件系统解空间中的基本元素
对象 = 属性 + 方法
对象以id作为标识,既包含数据(属性),也包含代码(方法),是某一类具体事务的特殊实例
dir()方法查看对象有什么属性和方法
id()查看对象的id
函数也是对象,也有一系列的属性和方法
创建对象
对象是类的实例,是程序的基本单元
要创建一个新的对象,首先必须定义一个类,用以指明该类型的对象所包含的内容(属性和方法)
同一类(class)的对象具有相同的属性和方法,但属性值和id不同
对象的名称
对象实现了属性和方法的封装,是一种数据抽象机制
对象属性和方法的引用
引用形式
<对象名>.<属性名>
可以和一般的变量一样用在赋值语句和表达式中
例如:”abc”.upper()
返回大写的”ABC”字符串
Python语言动态的特性,使得对象可以随时增加或者删除属性或者方法
面向对象编程
面向对象编程(OOP)是一种程序设计范型,同时也是一种程序开发方法。
程序中包含各种独立又能互相调用的对象
每个对象都能接受、处理数据并将数据传递给其他对象
类的定义和调用
什么是类
类(class)是对象的模板,封装了对应现实实体的性质和行为
实例对象(Instance Objects)是类的具体化
为面向对象编程的三个最重要的特性提供了实现的手段
封装性、继承性、多态性
和函数相似,类是一系列代码的封装
python中约定,类名用大写字母开头,函数用小写字母开头,以便区分
定义类
class语句
类的初始化
class <类名>:
def init(self, <参数表>):
def <方法名>(self,<参数表>)
__init__()
是一个特殊的函数名,用于根据类的定义创建实例对象,第一个参数必须为self
调用类
<类名>(<参数>)
调用类会创建一个对象,
obj = <类名>(<参数表>)
返回一个对象实例
类方法中的self指这个对象实例
使用点(.)操作符来调用对象里的方法
t = turtle.Pen() #turtle模块下的一个类Pen
t.forward(100)
实例
类定义中的特殊方法
特殊方法(special method)也被称作魔术方法(magic method)
在类定义中实现一些特殊方法,可以方便地使用python中的一些内置操作
所有特殊方法的名称以两个下划线(__)开始和结束
对象构造器
析构器
del(self,[…)
销毁对象时调用
FileObject对象被销毁的时候,会调用__del__
特殊方法
算术运算符
反运算
当左操作数不支持相应的操作时被调用
大小比较
自定义对象排序
类的继承
类的继承机制
子类与父类
关于self
在类定义中,所有方法的首个参数一般都是self
self的作用:在类内部,在实例化过程中传入所有数据都赋给这个变量
self实际上代表实例对象