Skip to main content
 首页 » 编程设计

python之在某些已定义的情况下使用类返回 False

2025年05月04日12dudu

我想知道是否有一种方法可以配置在某些特定情况下返回 False 的类。是什么让空字符串和空列表返回 False ?如何用我自己的条件重现该模式(例如,当该类的属性等于定义值时返回 False)?

一个例子来说明我在找什么:

class Foo(): 
  def__init__(self, value): 
    self.value=value 
 
# I would like that the class Foo return False if his value equal 0. 
 
a = Foo(1) 
b = Foo(0) 
 
for each in [a,b]: 
  if each : print( "The value isn't 0 :)" ) 
  else : print( "The value is 0..." ) 

请您参考如下方法:

对于 Python 3,您需要 __bool__方法。对于 Python 2,您需要 __nonzero__ .

class Foo(): 
  def __init__(self, value): 
    self.value = value 
 
  def __bool__(self): 
    return self.value != 0 
 
a = Foo(1) 
b = Foo(0) 
 
for each in [a,b]: 
  if each : print( "The value isn't 0 :)" ) 
  else : print( "The value is 0..." )