用于布尔值的比较运算符

时间:2018-05-04 12:30:38

标签: python comparison-operators

比较运算符如何工作?我认为它们只能用于比较数值,5< = 8等。但是在这段代码中 sets 进行了比较:

str = 'The quick Brow Fox'
alphabet = string.ascii_lowercase
alphaset = set(alphabet)

b = alphaset <= set(str.lower()) # Does it automatically extract length of objects?

print(len(alphaset))  # 26
print(len(set(str.lower())))  # 19
print(b)

26
15
False

我认为这是不可能的。 alphaset <= set(str.lower()),你知道字面意思是,e。 G。 set() <= set()。运算符是否隐式调用此类对象上的len()来查找要比较的数值?

如何知道一个序列比另一个序列更大,更小或更等?

2 个答案:

答案 0 :(得分:0)

来自Python manual

  

issubset(other)
  set <= other

     

测试集合中的每个元素是否都在其他中。

如果您想为自己的类重载运算符,则有多种magic methods you can implement。当你调用a < b时,如果存在这样的方法,Python就会推迟到a.__le__(b)

答案 1 :(得分:0)

Python支持operator overloading,这意味着任何类都可以实现提供对标准运算符的访问的方法。

有关您可以在Python中执行的操作的完整文档,包括类可以实现哪些方法来支持不同的运算符,请查看Python data model

有关像set这样的内置类型如何实现其运算符的说明,请参阅该类型的文档。例如,documentation for the set type