type.__new__(cls, name, bases, attrs) type(cls,xx)区别?
初学python,看到metaclass的时候, 对于生成'类'对象的时候,metaclass的__new__方法里面返回 生成的'类'对象,
type本身就是一个元类,那
return type.__new__(cls, name, bases, attrs) 和 return type(cls, name, bases, attrs)有啥不同呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
type.__new__()
调用的是type类的类方法__new__
或者静态方法__new__
,type()
是使用type的__init__()
方法新建一个type实例或者调用type类的静态__call__()
方法或者类方法__call__()
(典型的就是求一个对象的类型type("Hello")
)type()只接受一个或三个参数,一个参数返回对象的type,三个参数一般返回新的type类,类型是<class 'type'>
type.__new__(),会创建一个type类的实例,类型是class '__main__.cls',