zoukankan      html  css  js  c++  java
  • __new__这个内置函数


    class MyType(type):
    def __init__(self,what,bases = None,dict = None):
    print("--MyType-- init--")
    super(MyType, self).__init__(what,bases,dict)
    def __call__(self, *args, **kwargs):
    print("--MyType-- call--")
    obj = self.__new__(self,*args, **kwargs)
    self.__init__(obj,*args, **kwargs)



    class Foo(object):
    __metaclass__ = MyType ###关联父类,父类必须在前面
    def __init__(self,name):
    self.name = name
    print("Foo___init__")
    def __new__(cls, *args, **kwargs):
    print("Foo__new__")
    ##如果要继承父级方法的话就加上return 如果不加上就不会在走__init__这个函数实例化
    return object.__new__(cls)##继承父亲的__new__方法
    ##如果一个类中有__new__这个内置函数的话,那么这个类就通过__new__这个函数来实例化


    Foo("Cai")
    以上内容作为课堂笔记,如有雷同,请联系于我
  • 相关阅读:
    类加载
    LinkedList插入排序实现
    99乘法表
    关于IO流的抽象类
    分解质因数
    Struts2小demo遇到的几个问题
    Tomcat设置欢迎页问题
    数据库迁移
    EF – 1.模式
    正则表达式
  • 原文地址:https://www.cnblogs.com/ArtisticMonk/p/8984834.html
Copyright © 2011-2022 走看看