Ho il seguente codice che sto cercando di capire:__call__ comprensione e list.sort (chiave)
>>> 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]
qualcuno può spiegare come funziona? Per quanto ho capito, __call__
è ciò che viene chiamato quando si chiama object()
- chiamando l'oggetto come una funzione.
Quello che non capisco è come nums.sort(key=DistanceFrom(10))
. Come funziona? Qualcuno può spiegare questa linea?
Grazie!
Grazie! Questo è perfetto. – user225312
@Alfred, sei il benvenuto –