我有一个应用程序,我需要能够尽快区分数字和bool.除先跑之外有哪些替代方案isinstance(value, bool)
?
编辑:感谢您的建议.实际上,我想要做的就是检查数字,这样可以减少我的支票(数字更为普遍),并改善我的负面因素.isinstance()
本身足够快.这x is True or x is False
很有趣.
因此,Padraic Cunningham建议,以下可能会更快一些.我自己的快速实验 - cProfile
没有显示出任何差异:
isbool = value is True or value is False
Run Code Online (Sandbox Code Playgroud)
我认为这是你能得到的最快速度:两种非类型强制比较.
编辑:我重播了@user 5061的计时测试并添加了我的声明.这是我的结果:
>>> 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
Run Code Online (Sandbox Code Playgroud)
编辑2:注意,我在这里使用Python 2.7.@user 5061可能会使用Python 3(从print()
函数中说明),因此在投入生产之前,对于YMMV,此处提供的任何解决方案都应由OP进行测试.
归档时间: |
|
查看次数: |
122 次 |
最近记录: |