EdisonChendi
11/22/2016 - 2:27 PM

object_to_boolean.py

# coding=UTF-8

class User(object):

    def __init__(self, id):
        self.id = id

    def __nonzero__(self):
        return self.id not in (None, 0)

    def __len__(self):
        # meaning less for User class
        pass


def main():
    u1 = User(1)
    print(bool(u1)) # first check __nonzero__, then __len__ method
    u2 = User(0)
    print(bool(u2))

if __name__ == "__main__":
    main()