擅长:python、mysql、java
<p>正如<a href="https://stackoverflow.com/a/49661509/908494">user2357112's answer</a>所解释的,<code>tp_new</code>是类型slot方法,Python定义类的默认版本会查找并调用<code>__new__</code>方法。你知道吗</p>
<p>类型槽方法的思想并不是在一个地方全部解释的,但是请参见C API中的<a href="https://docs.python.org/3/c-api/typeobj.html" rel="nofollow noreferrer">Type Objects</a>和扩展和嵌入文档中的<a href="https://docs.python.org/3/extending/newtypes.html" rel="nofollow noreferrer">New Types</a>。你知道吗</p>
<p>您还需要阅读这两章中<code>tp_new</code>上的特定条目,因为它是一个特别的函数。你知道吗</p>
<p>如果您想查看源代码,大部分相关内容都在<a href="https://github.com/python/cpython/blob/master/Objects/typeobject.c" rel="nofollow noreferrer">^{<cd4>}</a>中。请注意,<code>__new__</code>包装器与其他Python方法包装器不同,名称查找不调用泛型特殊方法查找代码,但基本原理仍然非常相似。你知道吗</p>