面向对象
python 面向对象
LCY133
这个作者很懒,什么都没留下…
展开
-
python 面向对象 继承之 supper 函数
supper 最基本的使用方法: 重写父类的构造方法 再调用父类的构造方法 能够调用父类的构造方法,再调用父类的构造方法 class A(object): def __init__(self): print('A') class B(A): def __init__(self): super().__init__() #super() 函数,不能不加括号! print('----B----') b = B() 基本应用方式原创 2020-07-14 00:37:06 · 724 阅读 · 0 评论 -
多继承 查看继承顺序的‘__mro__’魔法方法
class D(object): pass class B(D): pass class C(D): pass class A(B,C): pass print(A.__mro__) 可以通过__mro__魔法方法查看多继承的顺序原创 2020-07-04 15:17:44 · 200 阅读 · 0 评论 -
python type和 isinstance is and ==
type:查看一个对象的类型 isinstance:查看是不是某个类的实例 isinstance()#考虑继承关系,我附庸的附庸也是我的附庸 type()#不考虑继承关系的,我附庸的附庸不是我的附庸 直接上代码: class Father(object): pass class Son(Father): pass ls = Son() print(isinstance(ls,Son)) print(isinstance(ls,Father))#考虑到继承关系,ls也是Fathe.原创 2020-07-04 12:43:11 · 193 阅读 · 0 评论 -
python 实现 抽象基类 abc模块
抽象基类(abc模块) 抽象基类介绍 抽象基类(abstract base class,ABC):抽象基类就是类里定义了纯虚成员函数的类。纯虚函数只提供了接口,并没有具体实现。抽象基类不能被实例化(不能创建对象),通常是作为基类供子类继承,子类中重写虚函数,实现具体的接口。 抽象基类就是定义各种方法而不做具体实现的类,任何继承自抽象基类的类必须实现这些方法,否则无法实例化。 起名字时不要把模块名起为abc.py,因为abc基类的原因,那时候就会冲突 应用场景: 1.我们去检查某个类中是否有某种方法 2.我们原创 2020-07-04 11:41:02 · 505 阅读 · 0 评论 -
多态和鸭子类型
鸭子类型: 多态的概念是应用于Java和C#这一类强类型语言中,在使用一个变量时需要指定这个变量的类型;而Python崇尚"鸭子类型" 动态语言调用实例方法时不检查类型,只要方法存在,参数正确,就可以调用。这就是动态语言的“鸭子类型”,它并不要求严格的继承体系,一个对象只要“看起来像鸭子,走起路来像鸭子”,那它就可以被看做是鸭子。 我觉得可迭代对象这个变量的出现就非常重要 比如extend这个方法,只要传入的是可迭代对象就可以使用这个方法 a = [1,2] b = [3,4] c = (5,6) d =原创 2020-07-04 09:46:27 · 225 阅读 · 0 评论