一.什么是对象
对象的基本概念
>>>“万物皆对象”
Python中的所有事物都是以对象形式存在,从简单的数值类型,到复杂的代码模块,都是对象
>>>对象(object)
既表示客观世界问题空间中的某个具体事物,又表示软件系统解空间中的基本元素
>>>对象 = 属性 + 方法
对象以 id 作为标识,既包含数据(属性),也包括代码(方法),是某一类具体事物的特殊实例
创建对象
>>>对象是类的实例,是程序的基本单位
要创建一个新的对象,首先必须定义一个类,用以指明该类型的对象所包含的内容(属性和方法)
同一类(class)的对象具有相同的属性和方法,但属性值和 id 不同
>>>对象的名词
赋值语句给予对象以名称,对象可以有多个名称(变量引用),但只有一个 id
例:a = complex(1, 2)
>>>对象实现了属性和方法的封装,是一种数据抽象机制
提高了软件的重用性、灵活性、扩展性
对象属性和引用方式
>>>引用形式
<对象名>.<属性名>
可以跟一般的变量一样用在赋值语句和表达式中
例:"abc".upper()
(1+2j).real
(1+2j).imag
>>>Python语言动态的特征,使得对象可以随时增删属性或者方法
面向对象编程
>>>面向对象编程(OOP)是一种程序设计范式,同时也是一种程序开发方式
程序中包含各种独立又能互相调用的对象,每个对象都能接受、处理数据并将数据传给其他对象
>>>传统程序设计
将程序看作一系列函数或指令的集合
二.类的定义与调用
什么是类
>>>类(class)是对象的模板,封装了对象现实实体的性质和行为
>>>实例对象(Instance Objects)是类的具体化
>>>把类比作模具,对象则是用模具制造出来的零件
>>>类的出现,为面向对象编程的三个最重要的特性提供了实现的手段
——封装性、继承性、多态性
>>>和函数相似,类是一系列代码的封装
——Python中约定,类名用大写字母开头,函数用小写字母开头,以便区分
定义类
>>>class语句
class <类名>: <一系列方法的调用>
>>>类的初始化
class <类名>: def __init__(self, <参数表>): def <方法名>(self, <参数表>): __init__() 是一个特殊的函数名,用于根据类的定
调用类
>>> <类名>.(<参数>)
调用类会创建一个对象,(注意括号!) obj = <类名>(<参数表>) 返回一个对象实例 类方法中的self指这个对象实例!
>>>使用点(.)操作符来调用对象里的方法
t = turtle.Pen() t.forward(100) t.left(90) ~~
class Force: #力 def __init__(self, x, y): # x,y方向分量 self.fx, self.fy = x, y def show(self): #打印出力的值 print("Force<%s, %s>" % (self.fx, self.fy)) def add(self, force2): #与另一个力合成 x = self.fx + force2.fx y = self.fy + force2.fy return Force(x, y) #生成一个力对象 f1 = Force(0, 1) f1.show() #生成另一个力对象 f2 = Force(3, 4) #合成为新力 f3 = f1.add(f2) f3.show()