美文网首页
python(进阶二)

python(进阶二)

作者: 梦醒家先生 | 来源:发表于2018-05-21 20:37 被阅读0次

    多态

    1. python有多态,但是不是一个严谨的多态,因为Python是一个动态语言,没有强制类型
    

    封装

    一个函数一个功能,一个类是多个相关函数的集合
    

    继承

    子类中相同的方法会放到父类中,减少代码重复性
    

    mro 及多继承

    mro类初始化顺序表,保持我们的类只初始化一次
    super()从mro顺序表中找到自已的位置,从mro顺序表中调用下一个类
    

    实例与类之间的调用关系

    实例可以调用三种类型的方法(静态,类,实例),可以调用类的属性及自我的属性
    类可以调用三种类型的方法(静态,类,实例),但是不能调用实例上的属性
    
    1.png

    property

    1. 完成常量,常量是能得到到数据,但是不能修改数据,一般常量都是大写
    2. 代码实现
        这个常量一般在init中创建一个私有的属性
        提供一个得到这个私有属性的方法,但是我们为了让常量更直观,在方法上加入装饰器@property
        调用就可以使用(类名.方法名)
    
    2.png

    魔法属性与方法

    __dict__:查看属性
    __class__:查看谁创建了我
    
    __init__:初始化
    __new__:创建时,一般单例
    __call__:实例()调用
    

    上下文管理器

    只要实现了__init__ ,__enter__,__exit__这三个方法就可以说实现了上下文管理器
    1.简化了代码
    2.程序退出时自动关闭
    3.操作时出现异常也会自动关闭
    
    with myopen() as f:
        pass
    myopen()这个调用__init__方法
    as 后面的f由__enter__这个方法返回
    程序执行完后退出我们会执行__exit__,一般用来关闭资源  
    

    相关文章

      网友评论

          本文标题:python(进阶二)

          本文链接:https://www.haomeiwen.com/subject/zknqjftx.html