首页 > 试题广场 >

对于以下使用元类(Metaclass)创建类的 Python

[单选题]
对于以下使用元类(Metaclass)创建类的 Python 代码,其执行后的打印输出顺序是什么?
class MyMeta(type):
    def __new__(mcs, name, bases, dct):
        print("1. MyMeta __new__")
        return super().__new__(mcs, name, bases, dct)
    def __init__(cls, name, bases, dct):
        print("2. MyMeta __init__")
        super().__init__(name, bases, dct)
class MyClass(metaclass=MyMeta):
    def __init__(self):
        print("3. MyClass __init__")
    def __new__(cls):
        print("4. MyClass __new__")
        return super().__new__(cls)
instance = MyClass()
  • 1, 2, 4, 3
  • 1, 4, 2, 3
  • 4, 3, 1, 2
  • 2, 1, 3, 4
  • 元类方法 (MyMeta.__new__, MyMeta.__init__): 在类定义时执行,用于创建和初始化类本身

  • 类方法 (MyClass.__new__, MyClass.__init__): 在实例化时执行,用于创建和初始化实例


发表于 2025-09-29 13:19:29 回复(0)