1.1 了解OOP
面向对象编程(Object-Oriented Programming;OOP),是一种更为高效的编程方式,python中的类是OOP的主要实现工具,利用OOP设计模式可以将代码分解,从而降低冗余程度,并且可以通过定制已有代码来编写新的程序而不用在原处修改,当然这主要得益于类,类也被认为是python提供的最有用的工具之一。
1.2对象:类对象与实例对象
关于对象,先做出细分解释:
- 世间万物皆对象:无论是概念还是实体都可以抽象为对象
- 每个对象都是唯一的:就如同不存在两片一样的叶子
- 对象具有属性和行为:对人而言,人的属性有身高、年龄、体重、姓名等等;行为包括学习、吃饭、耍朋友等等
- 对象具有状态:状态指的是某个瞬间对象的各个属性的取值,例如从不开心的0,变成开心的1;体重60kg变成50kg等
- 对象分为类对象和实例对象两大类:类对象是具有相同属性和行为的实例对象的抽象,类对象就是实例对象的模板,实例对象由类对象创建出来。同一个类对象的实例对象如果具有相同的属性,表明它们的含义是相同的,但状态不一定相同,例如两位同学都有体重,身高的属性,但是取值可能不同。
1.3 初识并创建类对象
语句:class 类名(object):
#属性与方法
首先明白类是一个新的对象,而概括地讲类就是一些函数的包,函数使用内置对象类型,但是类的设计是为了创建和管理新的对象。类也支持继承(一种代码定制和复用的机制)
1.4从继承和组合方面解释类
可以把类看作建立真实世界中的结构和关系的模型,例如小汽车、猫、苹果,都可以
继承:
谁来继承呢?
由类创建的实例来继承
继承什么呢?
继承所创建事物所共有的属性(属性:就是人类对于一个对象的抽象方面的刻画。一个具体的事物,总是又许许多多的性质和关系,我们把一个事物的性质和关系叫做事物的属性)。
可以把类看作一个工厂,而你‘生产’的‘产品’就是一个 实例 。例如你创建了一个小猫咪的类,猫的种类,年龄等等就是它的属性。你可以用这个类建立实例,实例有独立的命名空间,每个实例都是独立的。
组合
事物是一些组件的集合,例如苹果由皮、核、果肉等,创建一个苹果的类,一个苹果实例对象就包含这些组件,每个组件也都可以执行相关的命令,每个组件也都可以写成类,并定义自己的行为和关系。
1.5 创建一个类并生成实例对象
创建一个猫?类,有种类,名字,年龄,健康程度等属性
class Cat(object):
def __init__(self, breed, name, age, health):
self.name = name
self.breed = breed
self.age = age
self.health = health
cat = Cat('波斯猫', '喵喵', 1, '很好') #生成一个实例对象
print(cat.breed)
print(cat.age)
波斯猫
1
类方法的第一位参数:self,比较特殊,因为它总是接收作为方法调用隐含主体的实例对象,就是这里的Cat
类中编写了__init__方法,每次创建实例对象就会自动调用它,__init__也被称为构造函数,其self后的参数,在创建新的实例对象是会被记住,从而实现继承的目的
给实例对象属性绑定值的方法有两种:
1.在类对象的内部:self.属性名 = 属性值
2.在类对象的外部:实例对象.属性名 = 属性值
访问实例对象属性的方式有两种:
1.在类对象的内部: self.属性名
2.在类对象的外部: 实例对象.属性名