类(Python)

50 阅读1分钟

类的内置函数

  • new 分配空间
  • init 初始化
# 初始化动作执行一次
class Initial(object):

    instance = None
    init_flag = False

    # 定义静态变量,获取唯一内存地址
    def __new__(cls, *args, **kwargs):
        # 判断如果已经获取过内存变量,将不再从内存中生成新的地址
        if cls.instance is None:

            # 从super中获取唯一内存地址
            cls.instance = super().__new__(cls)

        """返回唯一地址"""
        return cls.instance

    def __init__(self):
        # 根据类属性判断是不是已经初始化过
        if Initial.init_flag:
            return
        print("initialization data")
        Initial.init_flag = True


instance = Initial()
a1 = Initial()
print("唯一地址 :%s" % instance)
print("唯一地址 :%s" % a1)
  • 根据类属性判断如果已经获取过内存变量,将不再从内存中生成新的地址
if cls.instance is None:

    # 从super中获取唯一内存地址
    cls.instance = super().__new__(cls)

"""返回唯一地址"""
return cls.instance
  • 根据类属性判断是不是已经初始化过
if Initial.init_flag:
    return
print("initialization data")
Initial.init_flag = True