Comparisons


    • 优先级:比较运算符 > 布尔运算符;比较运算符优先级相同
    • 比较可以连续:如  x < y <=z,等价于 x<y and y <= z
    • 八种比较操作:
      • <                 strictly less than
      • <=               less than or equal
      • >                 strictly greater than
      • >=               greater than or equal
      • ==               equal
      • ==               not equal
      • is                 object identity
      • is not           negated object identity
    • 不同类型的对象无法比较,除了数字类型外。此外,某些类型如函数对象仅支持degenerate概念,任何该类型的2个对象不相等。
    • 无法比较,报错TypeError:
      • 复数与其他类型
      • 不同类型的对象
      • 未定义排序规则
    • 不同实例通常不相等,除非实例的类定义了“__eq__()”方法
    • 相同类型的实例或不同类型的对象,无法进行排序,除非对类进行定义足够多的方法“__lt__()”, “__le__()”, “__gt__()”和“__ge__()”(如果需要约定俗成的比较符,通常__lt__()和__eq__()就足够了)
    • “is”和“is not”不能定制,它们可用于所有对象并且不会抛出异常
    • “in”和“not in ”用于可迭代对象或具有“__contains__()”方法的对象
原文地址:https://www.cnblogs.com/ShuComputerProgram/p/10359941.html