擅长:python、mysql、java
<p>所以,帕德雷克·坎宁安建议,接下来的可能会快一点。我自己对<code>cProfile</code>-ing的快速实验没有显示出任何区别:</p>
<pre><code>isbool = value is True or value is False
</code></pre>
<p>我假设这是最快的:两个非类型强制比较。你知道吗</p>
<p><strong>编辑:</strong>我重放了@user 5061的计时测试并添加了我的语句。这是我的结果:</p>
<pre><code>>>> import timeit
>>> stmt1 = "isinstance(123, bool)"
>>> stmt2 = "123 is True or 123 is False"
>>> t1 = timeit.timeit(stmt1)
>>> t2 = timeit.timeit(stmt2)
>>> print t1
0.172112941742
>>> print t2
0.0690350532532
</code></pre>
<p><strong>编辑2:</strong>注意,我在这里使用的是Python2.7。@用户5061可能使用python3(从<code>print()</code>函数中可以看出),因此这里提供的任何解决方案都应该在投入生产之前由OP进行测试,例如YMMV。你知道吗</p>