字符串比较在 Python 中(以及一般情况下)有什么作用?如果我有以下代码:
def com(a):
if a > 'banana':
print 'yes'
else:
print 'no'
什么会使“大于”“香蕉”?我对“比较”的概念有点困惑。比较的是什么?
字符串比较在 Python 中(以及一般情况下)有什么作用?如果我有以下代码:
def com(a):
if a > 'banana':
print 'yes'
else:
print 'no'
什么会使“大于”“香蕉”?我对“比较”的概念有点困惑。比较的是什么?
它进行字典字符串比较。
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.