字符串比较做什么?

时间:2013-10-13 04:28:12

标签: python

Python中(和一般情况下)字符串比较有什么作用?如果我有以下代码:

def com(a):
    if a > 'banana':
        print 'yes'
    else:
        print 'no'

什么会使“大于”'香蕉'?我对“比较”的概念感到有点困惑。什么是比较?

1 个答案:

答案 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