Python不保证`and`和`or`返回布尔值

示例

使用时or,如果为true,则将返回表达式中的第一个值,否则将盲目返回第二个值。即or相当于:

def or_(a, b):
    if a:
        return a
    else:
        return b

对于and,如果为false,它将返回其第一个值,否则返回最后一个值:

def and_(a, b):
    if not a:
        return a
    else:
        return b