python-面向对象内置__方法
1.__setattr__,__delattr__,__getattr__,__getattribute__
__setattr__ 点语法添加/修改属性会触发它的执行
__delattr__ 点语法删除属性的时候会触发 del obj.attr
__getattr__ 只有在使用点调用属性且属性不存在的时候才会触发
__getattribute__ 使用点调用属性不管是否存在都会执行
2.__get__,__set__,__delete__
__get__():调用一个属性时,触发
__set__():为一个属性赋值时,触发
__delete__():采用del删除属性时,触发
3.__setitem__,__getitem,__delitem__ []语法使用触发
4.__str__,__repr__,__format__
__str__():直接打印对象时打印同时打印__str__的返回值
__repr__():repr函数打印或%r 如果__str__没有被定义,那么就会使用__repr__来代替输出
5.__slots__
class Foo:
__slots__=['name','age']
f1=Foo()
f1.name='alex'
f1.age=18
print(f1.__slots__)
6.__next__,__iter__
7.__doc__
8. __module__和__class__
from lib.aa import C
obj = C()
print obj.__module__ # 输出 lib.aa,即:输出模块
print obj.__class__ # 输出 lib.aa.C,即:输出类
9.__del__
del 对象时执行 内部不执行删除
10.__enter__和__exit__
__enter__ 出现with语句,对象的__enter__被触发,有返回值则赋值给as声明的变量
__exit__ with中代码块执行完毕时执行
11.__call__
对象后加()执行
12.__new__
object.new()实现单例
13.__len__
对象使用len()方法时调用返回len()结果
13.__eq__
对比两个对象