鍍金池/ 問答/Python  網(wǎng)絡安全  HTML/ type.__new__(cls, name, bases, attrs) ty

type.__new__(cls, name, bases, attrs) type(cls,xx)區(qū)別?

初學python,看到metaclass的時候, 對于生成'類'對象的時候,metaclass的__new__方法里面返回 生成的'類'對象,
type本身就是一個元類,那
return type.__new__(cls, name, bases, attrs) 和 return type(cls, name, bases, attrs)有啥不同呢?

回答
編輯回答
夢囈

type.__new__()調(diào)用的是type類的類方法__new__或者靜態(tài)方法__new__
type()是使用type的__init__()方法新建一個type實例或者調(diào)用type類的靜態(tài)__call__()方法或者類方法__call__()(典型的就是求一個對象的類型type("Hello"))

2017年4月5日 22:56