我可以确定在其他任何事情都没有的时候''会一直考虑False吗?
>>> if '':
... print('bah')
...
>>> if 'x':
... print('bah')
...
bah
Run Code Online (Sandbox Code Playgroud)
为什么或者为什么不?Python中的哪种机制定义了这种行为?
如果''被评估为False,为什么我得到这个结果:
>>> if '' == False:
... print('bah')
...
>>>
Run Code Online (Sandbox Code Playgroud)
从文档:
任何对象都可以用于真值进行测试,用于在使用if或while病症或如下面的布尔运算的操作数.以下值被视为false:
None
False
任何数字类型,例如零,0,0L,0.0,0j.
任何空序列,例如'',(),[].
例如,任何空映射{}.
用户定义的类的实例,如果类定义了一个__nonzero__()或__len__()方法,则该方法返回整数零或bool值False.
所有其他值都被认为是真的 - 因此许多类型的对象始终是真的.