擅长:python、mysql、java
<p>当<code>a</code>是<code>StringNode</code>时,<code>a.depth_first_search()</code>返回<code>Iterable[Node[str]]</code>,而不是<code>Iterable[StringNode]</code></p>
<p>在这种情况下,您可能不应该使用那些<code>get_string</code>和<code>get_integer</code>方法。只要让客户机直接访问<code>content</code>,或者如果出于某种原因决定使用getter,则将其设置为<code>get_content(self) -> T</code>基类中的<code>Node</code></p>
<p>我认为Python的类型注释不支持<code>depth_first_search</code>返回所需子类类型的iterable,而不使用显式强制转换或<code>Any</code>。您需要能够表达这样一个事实,即<code>self</code>与<code>self.children</code>的元素具有相同的类型,而我看不到实现这一点的方法</p>