简介
类的__nonzero__方法用于将类转换为布尔值。通常在用类进行判断和将类转换成布尔值时调用。
官方定义
查看Python手册,对此内置函数的定义如下:
object.__nonzero__(self)
Called to implement truth value testing and the built-in operation bool();
should return False or True, or their integer equivalents 0 or 1. When this
method is not defined, __len__() is called, if it is defined, and the object
is considered true if its result is nonzero. If a class defines neither
__len__() nor __nonzero__(), all its instances are considered true.
来研究一下Python中常见的"if obj:"逻辑判断语句,Python内部是如何处理的。从手册的定义中,__nonzero__实现了对布尔逻辑值的检查,是bool()函数的内置操作。该函数返回False或True的布尔值,或者对应的整数值0或1. 如果这个函数没有定义,便会调用内置函数__len__(). 如果__len__()已经定义,则返回值非0,则认为对象为true。如果类未实现__len__()和__nonzero__(),则实例对象被认为是true。
应用举例
今天同事咨询了一个关于XML解析的问题,用Python xml库去解析一个XML文件,查询一个标签: