在布尔值判断这一方面我们可以通过__bool__()方法实现上下文环境布尔值判断,完善__bool__()方法之后,实例化的对象就可以当做一个布尔值来使用了。下面来演示一下。
class Cat:
def __bool__(self):
return True
# return False
c = Cat()
print(c)
if c:
print('123')
返回结果:
<__main__.Cat object at 0x0000000001DBA460>
123
从返回结果可以看出来,虽然我们直接输出对象名,返回的结果还是一个对象,但是通过判断语句我们直接可以把对象当做布尔值用。
再用个小案例来诠释一下。
# 判定一个对象成年
class Person:
def __init__(self, age):
self.age = age
def __bool__(self):
return self.age >= 18
p = Person(15)
if p:
print('123')
else:
print('abc')