擅长:python、mysql、java
<p>我将namedtuple子类化并重写<code>__new__</code>方法:</p>
<pre><code>from collections import namedtuple
class Node(namedtuple('Node', ['value', 'left', 'right'])):
__slots__ = ()
def __new__(cls, value, left=None, right=None):
return super(Node, cls).__new__(cls, value, left, right)
</code></pre>
<p>这保留了一个直观的类型层次结构,而工厂函数伪装成类的创建并没有这样做。</p>