我刚刚了解到python中有truthy和falsy值,它们不同于正常的True
和False
。
有人能深入解释什么是真实和虚假的价值观吗?我应该在哪里使用它们?truthy和True
值与falsy和False
值之间有什么区别?
Python通过将bool()
应用到类型来确定真实性,该类型返回True
或False
,该类型用于表达式,如if
或而
。
下面是一个自定义类Vector2d
的示例,当幅值(向量长度)为0时,它的实例返回False
,否则返回True
。
import math
class Vector2d(object):
def __init__(self, x, y):
self.x = float(x)
self.y = float(y)
def __abs__(self):
return math.hypot(self.x, self.y)
def __bool__(self):
return bool(abs(self))
a = Vector2d(0,0)
print(bool(a)) #False
b = Vector2d(10,0)
print(bool(b)) #True
注意:如果我们没有定义\uu bool\uu
,它将始终返回True,因为默认情况下用户定义类的实例被视为truthy。
书中的例子:“流畅的Python,清晰、简洁、有效的编程”
正如注释所描述的,它只是指被评估为True或False的值。
例如,要查看列表是否为空,请不要这样检查:
if len(my_list) != 0:
print("Not empty!")
您可以简单地执行以下操作:
if my_list:
print("Not empty!")
这是因为某些值(如空列表)在为布尔值求值时被视为False。非空列表为True。
类似地,对于整数0、空字符串“”等等,对于False,对于非零整数、非空字符串等等,对于True。
“truthy”和“falsy”等术语的概念只是指在上述情况下被视为正确的价值观,以及被视为错误的价值观。
例如,空列表([]
)被认为是虚假的,非空列表(例如,[1]
)被认为是真实的。
另请参见文档的本节。
所有价值观都被视为“真实的”,但以下价值观除外,即“虚假的”:
无
False
0
0.0
0j
十进制。十进制(0)
分数。分数(0,1)
[]
-一个空的列表
{}
-一个空的
()
-一个空的元组"
-一个空的str
b"
-一个空的字节
set()
-一个空的set
范围
,如范围(0)
obj.__bool__()
返回False
obj.__len__()
返回0
“truthy”值将满足if
或while
语句执行的检查。我们使用“truthy”和“falsy”来区分bool
值True
和False
。
真值检验
问题内容: 我刚刚才知道有和值在这是从正常的不同和? 有人可以深入解释什么是真实和虚假的价值观吗? 我应该在哪里使用它们? 是什么区别和值和和价值观? 问题答案: 如评论所述,它仅指评估为True或False的值。 例如,查看列表是否不为空,而不是像这样检查: 您可以简单地做到这一点: 这是因为在评估布尔值时,某些值(例如空列表)被视为False。非空列表为True。 类似地,对于整数,对于,空字
有人能使用下面的示例数据解释JavaScript Truthy和Falsy吗?我读过其他线程,但仍然感到困惑。 根据我的理解,我认为var a=1 是唯一的真理,其余的都是虚假的-这是正确的吗?
我刚刚开始使用MongoDB,我注意到它使用BSON在内部存储数据。然而,关于什么是BSON以及如何在MongoDB中使用BSON,文档并不十分清楚。有人能给我解释一下吗?
虽然总是可以使用mixin或方法重写来修改Bool强制,但默认情况下,哪些值被认为是truthy,哪些值被认为是falsy? 注意:这个问题以前问过,但不幸的是它太老了,它的内容完全过时了,没有用的是现代的拉库。
本文向大家介绍contextType是什么?它有什么用?相关面试题,主要包含被问及contextType是什么?它有什么用?时的应答技巧和注意事项,需要的朋友参考一下 定义当前组件要使用哪一个context
本文向大家介绍childContextTypes是什么?它有什么用?相关面试题,主要包含被问及childContextTypes是什么?它有什么用?时的应答技巧和注意事项,需要的朋友参考一下 childContextTypes用来定义context数据类型,该api从16.3开始已被废弃 使用方式