python day100-[day1-15]-2 类

  • 类之间的关系
简单的说,类和类之间的关系有三种:is-a、has-a和use-a关系。

【1】is-a关系也叫继承或泛化,比如学生和人的关系、手机和电子产品的关系都属于继承关系。

【2】has-a关系通常称之为关联,比如部门和员工的关系,汽车和引擎的关系都属于关联关系;关联关系如果是整体和部分的关联,那么我们称之为聚合关系;如果整体进一步负责了部分的生命周期(整体和部分是不可分割的,同时同在也同时消亡),那么这种就是最强的关联关系,我们称之为合成关系。

【3】use-a关系通常称之为依赖,比如司机有一个驾驶的行为(方法),其中(的参数)使用到了汽车,那么司机和汽车的关系就是依赖关系。
  • 抽象类-抽象方法 @abstractmethod
from abc import ABCMeta, abstractmethod


class Pet(object, metaclass=ABCMeta):
    """宠物"""

    def __init__(self, nickname):
        self._nickname = nickname

    @abstractmethod
    def make_voice(self):
        """发出声音"""
        pass


class Dog(Pet):
    """狗"""

    def make_voice(self):
        print('%s: 汪汪汪...' % self._nickname)
  • 判断两个类型是否相同
判断两个类型是否相同推荐使用 isinstance()

isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()

isinstance() 与 type() 区别:

    type() 不会认为子类是一种父类类型,不考虑继承关系。

    isinstance() 会认为子类是一种父类类型,考虑继承关系。

原文地址:https://www.cnblogs.com/damahuhu/p/12304180.html