在下面的示例中,result
将被分配给var2
,因为var1
是None:
var1=None
var2='June'
result=var1 or var2
但是,如果var1
为零result
仍然被分配给var2
,因为零被认为与None
或False
相同:
var1=0
var2='June'
result=var1 or var2
如何(不使用if var1!=None
)编辑此代码以确保var1
被认为是“有效的”(不是无,不是假),即使其值为零0
?你知道吗
Tags:
虽然
or
看起来很漂亮,但看起来您可能需要这样做:请记住,在Python中有很多错误:0、False、None、''、空序列、空映射以及以某种方式设置了
__nonzero__
和__len__
的类实例。你知道吗上面的代码允许除
None
之外的所有东西给你var1
。相应调整。你知道吗附录
例如,在Ruby中,只有
nil
和false
是falsy。假设您希望在Python中复制此行为。你可以写:然而,这里有一个警告。不要写:
为什么?因为,至少在Python 2中:
很高兴知道这一点,尤其是如果一个人正在从Ruby迁移到Python。你知道吗
相关问题 更多 >
编程相关推荐