元类和父类中同时写了__new__方法
来源:8-7 通过元类实现orm-2

神羅ten徵
2019-01-01
定义了三个类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__方法呢?
谢谢!
写回答
1回答
-
bobby
2019-01-03
课程中讲解到 类是由元类生成的,元类也是累, 所以元类的构造过程也可以被覆盖, 所以你这里面两个雷都重写new方法的目的是什么呢
012019-01-03
相似问题