比较运算符如何工作?我认为它们只能用于比较数值,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()
来查找要比较的数值?
如何知道一个序列比另一个序列更大,更小或更等?
答案 0 :(得分:0)
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。