'''
__init__方法是什么?
构造函数;也就是它是在类实例化创建之后调用
__new__方法呢?
它和__init__接受的参数是一样的,但是不同的是,__new__方法是创建这个类实例的方法;
那么就可以想象得到,__new__至少要有一个参数cls,代表实例化的类,而且也必须要有返回值return (不同的是__init__是不需要return)
'''
class A():
def __init__(self, name):
print('init')
print(self)
print(type(self))
self.name= name
def __new__(cls, name):
print('new')
print(cls)
print(type(cls))
return super().__new__(cls)
c = A('QQ')
#这是运行的答案,可以看出首先运行的__new__方法,然后返回值运行的__init__方法;
'''
new
<class '__main__.A'>
<class 'type'>
init
<__main__.Aobject at 0x000001ED6418FDE1>
<class '__main__.A'>
'''
PYTHON __new__ and __init__ 之间的区别
最新推荐文章于 2024-05-21 03:00:00 发布