Skip to content

Python中的__new__方法的重写

代码

class MusicPlayer(object):

    # new方法的重写,是一个静态方法,必须主动传递cls参数
    def __new__(cls, *args, **kwargs):
        # 1.创建对象时,new方法会被自动调用
        print("创建对象,分配空间")

        # 2.为对象分配空间
        instance = super().__new__(cls)
        # 3.返回对象的引用
        return instance

    def __init__(self):
        print("111")


player = MusicPlayer()
print(player)

运行结果

创建对象,分配空间
111
<__main__.MusicPlayer object at 0x0000000003A0D128>