3

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

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

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

4

1 回答 1

2

它进行字典字符串比较。

a > b

将解决:

a.__gt__(b)

在这种情况下a是 type str,所以它实际上调用str.__gt__(b)witha作为绑定实例。“gt”代表“大于”。

x.__gt__(y)True如果x大于y函数定义的值,则返回。如果gt未定义,它将回退到使用a.__cmp__(b). 根据比较结果返回 -1, 0, 1。如果__cmp__没有为 type of 定义a,这将导致语法错误。

str有一个__gt__方法,所以它用于解析a > b. 您可以为任何自定义对象提供此方法。

请参阅有关丰富比较的文档lt, le, eq, ne, gt, ge以及cmp.

于 2013-10-13T05:03:56.083 回答