第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__方法就能迭代

posted on 2019-11-03 21:03  坚持是多么伟大的事情  阅读(132)  评论(0编辑  收藏  举报