• 第57天python学习面向对象不常用属性


    # isinstance(object,cls)——————》判断object是不是cls的实例
    # isinstance(sub,super)———————》判断sub类是不是super的子类
    # 反射:自省的
    # hasattr(obj,"属性")#obj.属性是否存在
    # getattr(obj,"属性")#获取obj。属性,属性不存在就报错
    # getattr(obj,"属性","默认值")#获取obj.属性,属性不存不会报错,返回默认值
    # setattr(obj,"属性",“属性的值”)#obj.属性=属性值
    # delattr(obj,"属性")#del obj.属性


    #__getattr__ ,__setattr__ ,__delattr__:obj点的方式去操作属性时触发的方式
    #__getattr__:obj.属性 不存在时触发
    #__setattr__:obj.属性=属性的值时触发
    #__delattr__:del.属性 时触发

    ##__getitem__ ,__setitem__ ,__delitem__
    # obj[“属性”]方式去操作属性时触发的方式
    #__getitem__:obj["属性 "]时触发
    #__setitemr__:obj["属性 "]=属性的值 时触发
    #__delitemr__:del["属性 "] 时触发


    # __get__,__set__,__delete__
    #描述符就是一个新式类,这个类至少要实现上述三个方法的一个
    # class 描述符:
    #def __get__():
    # pass
    #def __set__():
    # pass
    #def __delete__():
    # pass

    # class 类:
    # name=描述符()
    # obj=类()
    # obj.name#get
    # obj.name="zhangsahn"#set
    #del obj.name #delete

    #__del__:析构方法

    #__str__ ,__repr__,__format__

    #__slots__ :省内存的,属性都没有__dict__了

    #__doc__ :查看文档信息

    #__module__ :对象是在哪个模块 ;,__class__:对象是在哪个类里面的

    #__del__

    #__cal__:只要对象加(),那么调用的就是定义的cal方法

    #__next__ 和 __iter__ 迭代器方法
    # 要让对象能不for循环,则使用__item__方法就能迭代
  • 相关阅读:
    按回车键提交表单
    Access数据库类型及属性
    Problem 1002
    问题 1003
    Problem 1003
    Switch Game(摘自LP学C++)
    1006
    膜拜蛇形矩阵
    A == B?
    Rectangles
  • 原文地址:https://www.cnblogs.com/jianchixuexu/p/11789108.html
Copyright © 2020-2023  润新知