zoukankan      html  css  js  c++  java
  • 023 面向对象 三

    类相关函数

    函数 释义
    issubclass() 检测一个类是否为另一个类的子类
    isinstance() 检测一个对象是否为一个类的实例
    hasattr() 检测一个对象是否有成员 xxx
    getattr() get attribute
    setattr() set attribute
    delattr() delete attribute

    类的成员描述符

    • 类的成员描述符(属性)是为了能在类中对类的成员属性进行相关操作而创建的一种方式
    操作 释义
    get 获取属性的操作
    set 添加或修改属性的操作
    delete 删除属性的操作
    • 如果想使用类的成员描述符,大概有三种方法

      1. 使用类实现描述器
      2. 使用属性修饰符
      3. 使用 property(fget, fset, fdel, doc)
    • 无论哪种修饰符都是为了对成员属性进行相应的控制

      • 类的方式:适合多个类中的多个属性共用一个描述符
      • 属性修饰符:适用于当前类中,控制一个类中的一个属性
      • property: 使用于当前类中,可以控制一个类中多个属性

    类的内置属性

    内置属性 释义
    __dict__ 以字典的方式显示类的成员组成
    __doc__ 获取类的文档信息
    __name__ 获取类的名称;如果在模块中使用,获取模块的名称
    __bases__ 获取某个类的所有父类,以元组的方式显示

    类的常用魔术方法

    • 魔术方法/魔法方法 就是不需要人为调用的方法,基本是在特定的时刻自动触发
    • 魔术方法的统一特征:方法名前后各有两个下划线

    操作类

    魔术方法 释义
    __init__ 构造函数
    __new__ 对象实例化方法;此函数较特殊,一般不需要使用
    __call__ 对象当函数使用的时候触发
    __str__ 当对象被当做字符串使用的时候调用
    __repr__ 返回字符串

    描述符

    • __set__
    • __get__
    • __delete__

    属性操作

    • __getattr__: 访问一个不存在的属性时触发
    • __setattr__: 对成员属性进行设置的时候触发
      • 三个参数
        1. self,用来获取当前对象
        2. 被设置的属性名称,以字符串形式出现
        3. 需要对属性名称设置的值
      • 作用:进行属性设置的时候进行验证或者修改
      • 注意:在该方法中不能对属性直接进行赋值操作,否则会陷入死循环
      • 可对比类相关函数

    运算分类相关魔术方法

    • __gt__: 进行大于判断的时候触发的函数
      • 两个参数
        1. self,用来获取当前对象
        2. 第二个对象
      • 返回值可以是任意值,推荐返回布尔值
  • 相关阅读:
    PKU 1860 Currency Exchange 最短路 bellman
    PKU 3259 Wormholes 最短路 bellman
    bzoj3514
    bzoj2594
    bzoj3901
    bzoj2843&&1180
    bzoj2631
    bzoj2049
    bzoj2002
    bzoj1146
  • 原文地址:https://www.cnblogs.com/yorkyu/p/10664255.html
Copyright © 2011-2022 走看看