__bool__ method

2021年2月19日 / 42次阅读 / 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

相关文章

    留言区

    您的电子邮箱地址不会被公开。 必填项已用*标注


    前一篇:
    后一篇:

    More


    ©Copyright 麦新杰 Since 2019 Python笔记

    go to top