dar*_*rix 5 python oop python-2.7 python-3.x
我可以在所需的布尔上下文中使用python对象吗?默认情况下,任何对象都True在布尔上下文中.
>>> class Person():
... pass
...
>>> a=Person()
>>> bool(a)
True
Run Code Online (Sandbox Code Playgroud)
像bool(0)返回False和bool(1)返回一样True.我可以用任何方式定义一个对象,使其具有布尔值True或者False.如果我在任何地方都错了,请纠正我,谢谢.
class Something(object):
def __nonzero__(self):
return False # Something is False always.
print bool(Something())
Run Code Online (Sandbox Code Playgroud)
注意事项__nonzero__已__bool__在Python 3.x中重命名
正如评论中指出的那样,最好__len__在容器上定义集合.当__len__返回0,bool(x)将评估假.否则,任何大于1的正数都将等于True.
| 归档时间: |
|
| 查看次数: |
827 次 |
| 最近记录: |