Tôi có đoạn code sau đây tôi đang cố gắng để hiểu:Hiểu __call__ và list.sort (key)
>>> 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]
bất cứ ai có thể giải thích cách làm việc này? Theo như tôi đã hiểu, __call__
là những gì được gọi khi object()
được gọi - gọi đối tượng là một hàm.
Điều tôi không hiểu là cách nums.sort(key=DistanceFrom(10))
. Cái này hoạt động ra sao? Bất cứ ai có thể vui lòng giải thích dòng này?
Cảm ơn!
Cảm ơn bạn! Đây là hoàn hảo. – user225312
@Alfred, bạn được chào đón nhiều nhất –