python中的函数对象

近期由于业务的需求,用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

 

你可能感兴趣的:(python,object,Class,扩展)