轻松学会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架飞机。

有时候,我们希望一个类只能创建出一个对象,这就是单例模式,在定义类的时候,需要做点特殊处理才能满足这样的要求。

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案