关于python:字符串比较有什么作用?

What does string comparison do?

本问题已经有最佳答案,请猛点这里访问。

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

1
2
3
4
5
def com(a):
    if a > 'banana':
        print 'yes'
    else:
        print 'no'

什么能使"比"香蕉"更大"?我对"比较"的概念有点困惑。正在比较什么?


它执行词典编纂字符串比较。

1
a > b

将决心:

1
a.__gt__(b)

在这种情况下,astr类型,所以它实际上称str.__gt__(b)为绑定实例,a为绑定实例。gt"表示大于"。

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

str有一个__gt__方法,因此用于解决a > b问题。可以为任何自定义对象提供此方法。

参见有关丰富比较的文档lt, le, eq, ne, gt, gecmp