在准备复试的时候,遇到一个问题,想了很久也查了不少资料,在这里和大家分享下。
Python中有一个all的内置函数,作用如下:如果可迭代对象都是True,那么结果为True;或者可迭代对象为空,结果为True。这里是Python的帮助信息
前半句很正常,all嘛,顾名思义,所有的对象都正确,结果肯定正确。但是后半句着实让人费解,为什么为空的时候,竟然返回True。这个和我们一般的编程思维是违背的,像我们一般遇到空list,空str都是当False处理的。源码
带着这个疑问,我在网上查询了很久。大部分只是告诉你怎么用,而且还有很多都是雷同的博客,我不知道这样对于一个程序员有什么提高的地方。少数的还可能会看下源码,但是对于我这个问题,依旧解决不了。所以我fq找了找,最终找到一个答案,虽然不能证明是否权威,起码我认为是可以逻辑自洽的。