Tengo el siguiente código que estoy tratando de entender:entendimiento __call__ y list.sort (clave)
>>> 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]
¿Puede alguien explicar cómo funciona esto? Por lo que he entendido, __call__
es lo que se llama cuando se llama object()
, llamando al objeto como una función.
Lo que no entiendo es cómo nums.sort(key=DistanceFrom(10))
. ¿Como funciona esto? ¿Alguien puede explicar esta línea?
Gracias!
¡Gracias! Esto es perfecto. – user225312
@Alfred, eres bienvenido –