近期由于业务的需求,用python写了一个堆排序,为了能扩充应用,应该将比较运算写成可扩展的形式,也就是使用函数对象,python中的函数对象是使用特殊函数__call__这个函数实现的。
__call__:
class callable(object):
....: def __init__(self,n):
....: self.n=n
....: def __call__(self,x):
....: return self.n>x
f=callable(10)
f(3)
True
f(30)
False