本文中介绍python常用的两个方法__new__
,__init__
,__call__
.
-
__init__
方法__init__方法负责初始化python对象,在系统执行,初始化对象。
class A:
def __init__(self):
print("__init__")
super(A, self).__init__()
def __new__(cls):
print("__new__")
return super(A, cls).__new__(cls)
def __call_(self):
print("__call__")
A()
输出结果
__new__
__init__
从输出结果看,__new__
方法最先被调用,返回一个实例对象,接着__init__
别调用。而__call__
未被调用
__call__
方法
关于__call__
方法,先提到一个概念,叫可调动对象,平时定义的函数,内置函数和类都属于可调用对象,如果类中实现了__call__
方法,那实例对象将成为一个可调用对象。
class A:
def __init__(self):
print("__init__")
super(A, self).__init__()
def __new__(cls):
print("__new__")
return super(A, cls).__new__(cls)
def __call_(self):
print("__call__")
a=A()
a()
输出结果
__new__
__init__
__call__