• 常用方法与放射


    一、面向对象中的常用方法:

    1. isinstance(obj,)     判断某个对象是不是某个类的实例。
    2. issubclass(子类,父类)  判断一个类是不是后面类的派生类(子类).

    二、反射:程序应该要具备访问、检测、修正本身状态或者行为的能力。

    面向对象中的反射是通过字符串的形式操作对象相关的属性。

    (一切都是对象,都可以使用反射。类也是对象,类也可以使用反射。)

     

    A. 四个反射(反省)的方式:(对类也适用)

    1.hasattrobj,属性名:          判断某个对象中是否有某个属性

    返回值为布尔型。

    2.getattrobj,属性名defaut       获取属性值

    如果有这个属性:

    返回的是obj.属性名。如果属性书数据属性可直接访问,如果是方法,直 接加括号运行。

    如果没有这个属性:返回defaut这个参数

    3.setattrobj,属性名’’属性值)    设置属性(添加属性)

    可以为对象添加属性:包括数据属性和函数。

    4. delattrobj,属性名    删除某个属性

     

    1. 反射的作用:

    1.反射用来可以实现插拔。(预留接口插入功能,或者删除功能)

    2.动态导入模块(基于反射当前模块成员)

    三、__getattr____delattr____setattr__(注意:必须设置参数,参考反射参数

    内置的__开头的函数,会在特定情况下自动执行代码。

    __init__函数会在调用,或者导入模块包时,自动执行。

    __setattr__会在添加、修改属性的时候被触发。

    __delattr__会在删除属性的时候被触发。

    __getattr__只会在访问属性,且属性不存在的情况下才会触发。

    __getattribute__只要访问属性,不能属性存不存在都会触发执行。

    四、描述符(注意:必须设置参数,参考反射参数)

    (注意:描述符当中的__set__()等必须有参数,否则报错,内置方法。)

    在一个新式类中,包含了def __set__(self)def __get__(self)def __delete__(self)方法的就叫描述符,所以描述符的本质就是一个新式类。但是描述符(新式类)在操作自身属性时不触发,只有将描述符(这个新式类)组合到其他类中,对这个类进行属性操作,描述符才能够相应触发。

    五、__init____str____call____del__的自动触发条件。

    __str__是用来改变对象的值,print时触发,且返回值必须是字符串类型。

  • 相关阅读:
    小知识:关于String的创建
    JSON学习笔记,数组
    JSON学习笔记,对象
    爱乐之城 La La Land
    TwoSampleMR包出现报错: None of the specified columns present
    无亲缘关系为何IBD结果为同卵双胞胎/重复样本
    本周最新文献速递20210321
    本周最新文献速递20210314
    使用 KaKs Calculator 计算 KaKs 的衍生问题解答
    本周最新文献速递20210307
  • 原文地址:https://www.cnblogs.com/yu-931017/p/10151954.html
Copyright © 2020-2023  润新知