当需要if obj 或者 not obj判断一个实例对象的真假时,Python解释器会优先调用魔法方法__bool__()。如果没有该方法,就调用__len__()。如果两个方法都没有,总是返回True
#!/usr/bin/env python # -*- coding: utf-8 -*- # @time: 2022/6/6 8:13 下午 class Room(object): def __init__(self): self.roomId = 0 class User(object): def __init__(self): self.userId = 0 def __len__(self): return self.userId user = User() if user: print('user对象', True, user.userId) else: print('user对象', False, user.userId) room = Room() if room: print('room对象', True, room.roomId) else: print('room对象', False, room.roomId)