zoukankan      html  css  js  c++  java
  • __new__内部工作方式

    __new__方法是创建一个对象空间,需要注意与__init__的区别:

    __new__是构造方法,创建新的对象空间,而__init__方法是初始化方法,对对象的属性进行封装.

    __new__方法执行是在实例化一个对象之后,在执行__init__方法之前,如果创建的类里没有__new__方法,就会向python3的默认父类object中寻找!

    __new__典型的用法就是单例类的运用:

    当类中只需要实例化一个对象时,就要用到__new__方法

    class A:
     INIT = None
     def __new__(cls,*args,**kwargs):
       if not cls.INIT:
         cls.INIT = object.__new__(cls) #创建一个新的对象空间,有了一个对象空间将跳过此步
         return cls.INIT  #如果已有对象空间,就将原有的对象空间返回,不再执行对象空间的创建
    
      def __init(self):
         pass

        

  • 相关阅读:
    笔试题集
    qs库使用指南
    如何打造难用,bug多的产品
    history路由模式下的nginx配置
    监听器Listener
    过滤器Filter
    表单重复提交问题
    验证码原理及验证
    Git的使用
    JavaWeb的登陆与注销功能
  • 原文地址:https://www.cnblogs.com/smile568968/p/9399402.html
Copyright © 2011-2022 走看看