定义了三个类A、B、C,三个类的关系为A(B), B(metaclass=C)
照理说,A或B中若写了__new__方法,其作用是控制实例对象的生成
元类C若写了__new__方法,其作用是控制类对象的创建过程
照理说两种__new__的作用不同,不会冲突
但发现若A和C或B和C同时写了__new__方法时,只有C中的__new__方法被执行了,A或B中的__new__方法并没有执行,并且还提示警告:
DeprecationWarning: class not set defining B as <class ‘main.B’>. Was classcell propagated to type.new?
请问这个警告是什么意思呢?为什么类和其元类不能同时写__new__方法呢?
谢谢!