我有下面的代碼,我想了解:瞭解__call__和list.sort(鍵)
>>> class DistanceFrom(object):
def __init__(self, origin):
self.origin = origin
def __call__(self, x):
return abs(x - self.origin)
>>> nums = [1, 37, 42, 101, 13, 9, -20]
>>> nums.sort(key=DistanceFrom(10))
>>> nums
[9, 13, 1, 37, -20, 42, 101]
誰能解釋這是如何工作?據我所知,__call__
是調用object()
時調用的 - 調用該對象作爲函數。我不明白的是nums.sort(key=DistanceFrom(10))
。這個怎麼用?任何人都可以請解釋這一行嗎?
謝謝!
謝謝!太棒了。 – user225312 2010-10-27 14:58:32
@阿爾弗雷德,你最歡迎 – 2010-10-27 15:01:43