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__
对比两个对象

posted @ 2019-04-12 11:12  SwZ1886  阅读(79)  评论(0编辑  收藏  举报