class A():
    __instance = None
    # __flag作为私有的静态变量用于防止init多次执行
    __flag = False

    def __new__(cls, *args, **kwargs):
        print("new")
        if cls.__instance is None:
            cls.__instance = super().__new__(cls)
        return cls.__instance

    # 如果 __new__() 未返回一个 cls 的实例,则新实例的 __init__() 方法就不会被执行。

    def __init__(self):
        if not A.__flag:
            print("init只会执行一次")
            A.__flag = True


a = A()
b = A()
print(a)
print(b)

output:

new
init只会执行一次
new
<__main__.A object at 0x7cb19773d0>
<__main__.A object at 0x7cb19773d0>

可以看到a和b指向了同一地址