轻松学会python面向对象第9篇---类与对象的关系
对象,实例,对象实例,他们是同一个事物的不同叫法。对象是由类创建出来的,类与对象之间,究竟是什么关系呢?
1. 不是父子关系
首先明确,他们之间不是父子关系。
在本系列的第5篇教程中,举例定义了Dog类和HuntDog,HuskyDog,GoldenDog,三个类,这三个类继承了Dog类。
Dog类与这三个类之间是父子关系,Dog是父类,HuntDog等类是子类。这三个子类之间是兄弟关系。
只有相同事物之间才能够存在父子关系,兄弟关系。类与对象,显然是两个不同的事物,否则也不会起不一样的名字。
2. 类是设计图纸
想要建一座大楼,需要设计图纸,想要建造一艘轮船,需要设计图纸,想要造一架战斗机,需要设计图纸,以此类比,想要创建一个对象,需要一个类。
类,就好比是设计图纸,对象则是根据设计图纸创建出来的。类定义了属性,定义了方法,对象被创建出来以后,自然就有了这些属性和方法。
用之前文章的例子
class Dog():
def __init__(self, _name, _age):
self.name = _name
self.age = _age
def eat_moon(self):
print("天狗吃月")
dog = Dog('二哈', 3)
print(dog.name) # 二哈
print(dog.age) # 3
类Dog是设计图纸,dog是根据设计图纸创建出来的对象。
在做设计时,规定了__init__方法有两个参数,因此在创建对象时,必须传入两个实参,__init__方法的功能是为对象初始化,既然设计图纸这样要求了,那作为工人,就得按照设计图纸的要求来办事。
3. 两者的数量关系
对象可以有多个,而类只有一个。这不难理解,设计图纸有一份就足够了,一份建造飞机的图纸,你可以根据图纸建造出100架飞机。
有时候,我们希望一个类只能创建出一个对象,这就是单例模式,在定义类的时候,需要做点特殊处理才能满足这样的要求。
评论