gpt4 book ai didi

python - 在 Python 中分配类 bool 值

转载 作者:太空狗 更新时间:2023-10-29 17:24:33 26 4
gpt4 key购买 nike

Python 中的 If 语句允许您执行如下操作:

   if not x:
print "X is false."

如果您使用的是空列表、空字典、None、0 等,这会起作用,但是如果您有自己的自定义类呢?您能否为该类分配一个 false 值,以便在相同风格的条件下,它会返回 false?

最佳答案

您需要实现 __nonzero__你类的方法。这应该返回 True 或 False 以确定真值:

class MyClass(object):
def __init__(self, val):
self.val = val
def __nonzero__(self):
return self.val != 0 #This is an example, you can use any condition

x = MyClass(0)
if not x:
print 'x is false'

如果 __nonzero__ 没有被定义,实现将调用 __len__ 并且如果实例返回一个非零值,则该实例将被认为是 True。如果 __len__ 也未定义,则所有实例都将被视为 True。

在 Python 3 中,__bool__用于代替 __nonzero__

关于python - 在 Python 中分配类 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9787890/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com