字符串比较在 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
.