我的同事在条件下使用这种方式
if len(A) is not 0:
print('A is not empty')
Run Code Online (Sandbox Code Playgroud)
我更喜欢这个
if A:
print('A is not empty')
Run Code Online (Sandbox Code Playgroud)
什么是prop-cons论点?
她的观点是,第一种方式是更直接的方式来展示她究竟想要什么.我的观点是我的方式更短.
第一种方式比我的方式快2倍:
>>> import timeit
>>> timeit.timeit('len(A) is not 0', setup='A=[1,2,3]')
0.048459101999924314
>>> timeit.timeit('bool(A)', setup='A=[1,2,3]')
0.09833707799998592
Run Code Online (Sandbox Code Playgroud)
但
>>> import timeit
>>> timeit.timeit('if len(A) is not 0:\n pass', setup='A=[1,2,3]')
0.06600062699999398
>>> timeit.timeit('if A:\n pass', setup='A=[1,2,3]')
0.011816206999810674
Run Code Online (Sandbox Code Playgroud)
第二种方式快6倍!我很困惑如何if工作:-)
Mik*_*mov 14
PEP 8风格指南很明确:
对于序列,(字符串,列表,元组),请使用空序列为假的事实.
Run Code Online (Sandbox Code Playgroud)Yes: if not seq: if seq: No: if len(seq): if not len(seq):
我认为如果 A = 42,你同事的代码会引发错误
object of type 'int' has no len()
Run Code Online (Sandbox Code Playgroud)
而你的代码只会执行 if 之后的任何内容。
| 归档时间: |
|
| 查看次数: |
821 次 |
| 最近记录: |