当前位置:  首页>> 技术小册>> Python合辑9-判断和循环

接下来,有 3 个测试例子,可以作进一步的验证:

可以暂停而思考下:bool(Test1) 与 bool(Test1()) 各是什么结果?然后依次判断剩下的两个类,结果又会是什么?
揭晓答案:

  1. bool(Test1) # True
  2. bool(Test2) # True
  3. bool(Test3) # True
  4. bool(Test1()) # True
  5. bool(Test2()) # False
  6. bool(Test3()) # True

原因如下:
● 类对象没被实例化时,bool() 不会调用它的 bool() 或 len() 这两个魔术方法
● 类对象被实例化后,若同时存在 bool() 或 len() 魔术方法,则 bool() 会先调用 bool() 方法(PS:这个方法要求返回值必须为 bool 类型,因此只要有它,就必然不需要再用len() 方法来判断真假)


该分类下的相关小册推荐: