Ecco quello che sto lavorando con finoraCome sovrascrivere il metodo __call__ di un metodo metodo in Python?
def f(n):
return n
f.__call__ = lambda n: n + 1
print f(2) #I expect an output of 3 but get an output of 2
io non sono interessato a un altro modo per ottenere il risultato desiderato. Piuttosto, per scopi didattici, vorrei sapere perché ignorare lo __call__
come ho fatto, non funziona come mi aspetto.
@SethMMorton: prova ad eseguire 'dir (f)' per vedere che ce l'hanno. – Tadeck
Correlati: http://stackoverflow.com/questions/9707600/python-functions-and-the-call-attribute – Jared