2021年2月19日 / 150次阅读 / Last Modified 2021年2月19日
__bool__只是python对象的一个magic method,它在对象参与条件判断的时候被调用,其返回值用来代表此对象的True或False。
对象被bool函数调用时,底层也是调用__bool__ method。
在Python2中,对应__bool__的是__nonzero__,在阅读代码的时候,需要注意。
下面给一点测试代码:
class aaa():
def __init__(self):
print('###')
self.a = 1
@property
def geta(self):
return self.a
@geta.setter
def geta(self, value):
self.a = value
def __bool__(self):
print('...')
return bool(self.a)
A = aaa()
if A:
print('A is true')
print(bool(A))
A.geta = 0
if not A:
print('A is false')
print(bool(A))
测试发现,__bool__必须返回boolean value
-- EOF --
本文链接:https://www.pynote.net/archives/3538
Ctrl+D 收藏本页
©Copyright 麦新杰 Since 2019 Python笔记