|  | 
 
 
 楼主|
发表于 2024-4-16 09:47:38
|
显示全部楼层 
| class MetaClass(type): def __new__(cls, name, bases, attrs):
 print("元类的__new__()方法被调用")
 return super().__new__(cls, name, bases, attrs)
 
 def __init__(cls, name, bases, attrs):
 print("元类的__init__()方法被调用")
 super().__init__(name, bases, attrs)
 
 def __call__(cls, *args, **kwargs):
 print("元类的__call__()方法被调用")
 return super().__call__(*args, **kwargs)
 
 class MyClass(metaclass=MetaClass):
 def __new__(cls, *args, **kwargs):
 print("类的__new__()方法被调用")
 return super().__new__(cls)
 
 def __init__(self, *args, **kwargs):
 print("类的__init__()方法被调用")
 super().__init__(*args, **kwargs)
 
 obj = MyClass()
 元类__call__方法返回是个什么值?元类__call__方法中的super().__call__(*args, **kwargs)会调用元类MetaClass的`__new__()`和`__new__()`方法来创建一个类对象,并返回该类对象?
 还是再定义完类的时候直接触发,也就是在obj = MyClass()之前触发?
 @FishC
 | 
 |