-
__init__
在类实例化创建对象时调用
-
__str__
被执行打印对象的操作时候会自动触发,并且该方法必须返回一个字符串对象,即必须有return出来的东西
-
__new__
__new__
用于产生空对象(类),相当于人的骨架
__init__
用于实例化对象(类),相当于人的血肉
__new__是用来创建类并返回这个类的实例, 而__init__只是将传入的参数来初始化该实例。
__new__在__init__方法之前调用,且__new__中必须调用父类的__new__
“
obj = (继承类).__new__(cls, *args, **kwargs)”
如果不在__new__方法里面调object的__new__方法就不会创建对象,__init__不会被执行;
如果不在__new__方法里面return创建好的对象,__init__不会被执行
-
__call__
在对象➕()时会调用 __call__
-
__enter__
和__exit__
__enter__用于获取资源或执行初始化操作,如果有返回值,返回as声明的变量
__exit__用于释放资源或者执行清理操作,接受异常类型值和异常追溯信息作为参数
使用with语句执行代码块时,先执行__enter__
方法,然后执行代码块,再执行__exit__
方法。
eg:当用到使用、关闭、提交的时候可以用到上下文管理器
-
__file__
打印出当前文件所在路径
-
__repr__
操作类实例的时候自动调用。与__str__()类似
当同一个类中__str__与__repr__同时存在,__str__优先级高于__repr__。