处理arg验证的最佳方法

时间:2019-06-13 22:37:37

标签: python

以这种方式验证args是否有不利之处:

if x in [1,2,3]:
    ...

还是采用更传统的方式更好:

if x == 1 or x == 2 or x == 3:
    ...

1 个答案:

答案 0 :(得分:1)

我唯一能看到的缺点就是性能。

在我的机器上,通过ipython,Windows 8.1,python 3.7.3,我得到:

x = 4

%timeit x in [1,2,3]
183 ns ± 19 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)

%timeit x == 1 or x == 2 or x == 3
295 ns ± 19.7 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)

所以看起来既干净又快捷。

仅供参考,我得到了:

%timeit x in {1,2,3}
116 ns ± 7 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)