Python中(和一般情况下)字符串比较有什么作用?如果我有以下代码:
def com(a):
if a > 'banana':
print 'yes'
else:
print 'no'
什么会使“大于”'香蕉'?我对“比较”的概念感到有点困惑。什么是比较?
答案 0 :(得分:2)
它进行词典字符串比较。
a > b
将解决:
a.__gt__(b)
在这种情况下a
的类型为str
,因此它实际上以str.__gt__(b)
作为绑定实例调用a
。 “gt”代表“大于”。
x.__gt__(y)
大于函数定义的True
,则 x
会返回y
。如果未定义gt
,则会回退到使用a.__cmp__(b)
。根据比较结果返回-1,0,1。如果未为__cmp__
的类型定义a
,则会导致语法错误。
str
有__gt__
方法,因此用于解析a > b
。您可以为任何自定义对象提供此方法。
查看有关丰富比较的文档lt, le, eq, ne, gt, ge
以及cmp
。