比较数据项
二叉搜索和搜索最小的项,都是基于列表中的数据是可以相互比较的。也就是说python中的这类数据具有相同的类型。并且他们都是识别运算符 ==、<和>的
为了允许算法对一个新对象的类使用比较运算符,就应该在该类中定义__eq__、__lt__和__gt__这样的方法。
例如SavingsAccount对象可能包含三个数据字段。一个用于名称,一个用于PIN,还有一个用于余额。假设账户的名称可以按照账户名称的字母来排序,那么就需要对__lt__方法通过以下的方式来实现:
class SavingsAccount(object):
"""这是一个用来储存账户名、Pin和余额的类"""
def __init__(self,name,pin,balance=0.0):
#初始化实例变量,实例变量都有一个前缀是_
self._name=name
self._pin=pin
self._balance=balance
#注意构造方法就是当运行< 的时候,会自动的运行__lt__
def __lt__(self,other):
return self._name<other._name
二叉搜索