zoukankan      html  css  js  c++  java
  • python中魔术方法和属性汇总

      类定义后,便在内存中开辟空间存储类属性和所有的方法,其中类属性是以字典的形式进行存储。当实例化一个类时,即另开辟空间存储成员变量,以及定义变量__class__指向类的存储空间。对象中的私有变量也是可以访问的,只是其名字发生改变,obj._class名__varible可以通过对象.__dict__查询。
    class中魔法属性:
    __module__:获取模块名
    __class__:获取类名
    __dict__ :获取对象或类的属性,dict形式

    __dir__:获取对象或类的属性,list形式,包括__dict__.
    __mro__:获取对象的继承顺序
    __doc__:获得对象或函数的描述信息

    __file__:获得该文件的名字,其包含路径信息。
    class中魔法方法:
    __init__:对象初始化
    __new__:开辟空间创建新对象
    __del__:对象释放时,自动自行
    __call__: 对象调用时(obj()),自动执行
    __str__: 对象转化为字符信息,以友好的方式便于用户理解的方式返回字符内容

    __repr__: 返回对象的描述信息,针对开发者,返回信息保留有原始性

    __bool__:判断对象的bool值时,会调用该方法。一般使用if时,触发该方法

    __eq__、__gt__、__lt__、__ge__、__le__:当对象进行比较时,出发该方法

    __setattr__、__getattr__、__delattr__:访问对象属性的时候,触发该方法


    __enter__:with 上下文管理器开始后,自动执行
    __exit__:with 上下文管理器结束后,自动执行,即使主进程报错,也执行
    __iter__:  将对象转化为可迭代的对象,
    __next__:for 遍历时触发此方法,

  • 相关阅读:
    hadoop yarn
    java 删除文件夹及其里面的文件
    scrapy 429 处理
    java 获取当前时间(年月日时分秒)
    Java测试类
    eclipse环境问题-java版本不兼容
    Java内功修炼系列一工厂模式
    Java内功修炼系列一观察者模式
    Java内功修炼系列一责任链模式
    Java内功修炼系列一拦截器
  • 原文地址:https://www.cnblogs.com/xuehaiwuya0000/p/10933608.html
Copyright © 2011-2022 走看看