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

发布于 2022-09-07 08:35:50 字数 189 浏览 12 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

温馨耳语 2022-09-14 08:35:50

type.__new__()调用的是type类的类方法__new__或者静态方法__new__
type()是使用type的__init__()方法新建一个type实例或者调用type类的静态__call__()方法或者类方法__call__()(典型的就是求一个对象的类型type("Hello"))

就此别过 2022-09-14 08:35:50

type()只接受一个或三个参数,一个参数返回对象的type,三个参数一般返回新的type类,类型是<class 'type'>
type.__new__(),会创建一个type类的实例,类型是class '__main__.cls',

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文