擅长:python、mysql、java
<p><code>vr is tuple</code>不检查绑定到名称<code>vr</code>的对象是否属于<code>tuple</code>类型,而是检查名称是否绑定到同一对象上(即,评估<code>id(vr) == id(tuple)</code>)。不可避免地,它们不是;<code>tuple</code>是<code>type</code>实例,而不是<code>tuple</code>实例!在</p>
<p>{您应该使用^ a1}:</p>
<pre><code>if all(isinstance(vr, tuple) for vr in vrs):
</code></pre>
<p>这支持继承(与例如<code>if all(type(vr) == tuple ...)</code>),因此也允许在输入中使用<code>namedtuple</code>。在</p>
<p>但是,在Python中,并不总是需要检查特定对象的类型(它使用强的动态类型,也称为<a href="https://docs.python.org/2.7/glossary.html#term-duck-typing" rel="nofollow">"duck typing"</a>)。虽然不清楚为什么要确保它们都是元组,但是,例如,所有都是<a href="https://docs.python.org/2/library/stdtypes.html#sequence-types-str-unicode-list-tuple-bytearray-buffer-xrange" rel="nofollow"><em>sequence types</em></a>(例如<code>tuple</code>,<code>list</code>,<code>str</code>)是否可以接受?在</p>