pyhon__new__方法.py

class A(object):
    def __init__(self,*args,**kwargs):
        print("init 方法")


    def __new__(cls, *args, **kwargs):
        print("new 方法")
        return object.__new__(cls)





print(id(A()))
a=A()
print(id(a))
"""
运行结果
new 方法
init 方法
2750930711504
new 方法
init 方法
2750930711504

总结
1、__new__ 至少要一个参数 cls ,代表实例化的类,此参数是实例化的实话由python 解释器提供
2、__new__ 必须有返回值,返回实例化cls出来的实例,还可以return 父类__new__出来的实例,或者直接object的__new__出来的实例
3、__init__有一个参数self ,是由__new__出来的实例,__init__是在创建出实例的时候初始化了动作,不需要返回值。


"""

猜你喜欢

转载自www.cnblogs.com/Xingtxx/p/12819404.html