class MyType(type):
def __init__(self,*args,**kwargs):

print("Mytype __init__",*args,**kwargs)

def __call__(self, *args, **kwargs):
print("Mytype __call__", *args, **kwargs)
obj = self.__new__(self)
print("obj ",obj,*args, **kwargs)
print(self)
self.__init__(obj,*args, **kwargs)
return obj

def __new__(cls, *args, **kwargs):
print("Mytype __new__",*args,**kwargs)
return type.__new__(cls, *args, **kwargs)

print('here...')
class Foo(object,metaclass=MyType):


def __init__(self,name):
self.name = name

print("Foo __init__")

def __new__(cls, *args, **kwargs):
print("Foo __new__",cls, *args, **kwargs)
return object.__new__(cls)

f = Foo("Alex")
print("f",f)
print("fname",f.name)

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-04-29
  • 2021-04-26
  • 2021-07-06
  • 2022-01-26
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-08-13
  • 2021-07-09
  • 2022-12-23
  • 2021-04-26
  • 2021-06-29
  • 2022-12-23
  • 2021-05-18
相关资源
相似解决方案