为了账号安全,请及时绑定邮箱和手机立即绑定

type.__new__(cls, name, bases, attrs) type(cls,xx)区别?

type.__new__(cls, name, bases, attrs) type(cls,xx)区别?

ABOUTYOU 2019-05-20 17:54:08
初学python,看到metaclass的时候,对于生成'类'对象的时候,metaclass的__new__方法里面返回生成的'类'对象,type本身就是一个元类,那returntype.__new__(cls,name,bases,attrs)和returntype(cls,name,bases,attrs)有啥不同呢?
查看完整描述

2 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

type.__new__()调用的是type类的类方法__new__或者静态方法__new__,type()是使用type的__init__()方法新建一个type实例或者调用type类的静态__call__()方法或者类方法__call__()(典型的就是求一个对象的类型type("Hello"))
                            
查看完整回答
反对 回复 2019-05-20
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

type()只接受一个或三个参数,一个参数返回对象的type,三个参数一般返回新的type类,类型是type.__new__(),会创建一个type类的实例,类型是class'__main__.cls',
                            
查看完整回答
反对 回复 2019-05-20
  • 2 回答
  • 0 关注
  • 2137 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信