|

楼主 |
发表于 2024-4-15 20:13:02
|
显示全部楼层
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方法为啥不执行?元类中的__new__() __init__() 是不是在类的定义的时候就先执行了?
@FishC |
|