Nome funzione tra parentesi dopo la chiamata di funzione in Python

1

Mi sono imbattuto in queste righe di codice nell'app per Android QPYTHON. Fanno parte di un campione che utilizza il modulo Bottle per creare un server Web semplice che sembra funzionare correttamente.

app = Bottle()
app.route('/', method='GET')(home)
app.route('/__exit', method=['GET','HEAD'])(__exit)
app.route('/__ping', method=['GET','HEAD'])(__ping)
app.route('/assets/<filepath:path>', method='GET')(server_static)

Ora, so che tutte le funzioni tra parentesi dopo la chiamata sono già state completate con il decoratore @route sopra questo. Ad esempio:

@route('/__ping')
def __ping():
    return "ok"

Ma non ho idea di cosa mettere le cose tra parentesi dopo che altre cose sono in Python, e dopo aver provato cento diverse permutazioni di "funzioni tra parentesi dopo le funzioni" ho rinunciato.

Mi butto in balia dello scambio.

    
posta giantpredatorymollusk 09.07.2015 - 12:34
fonte

1 risposta

2

Questa:

app.route('/', method='GET')(home)

... È lo stesso di questo:

func = app.route('/', method='GET')
func(home)

In altre parole, app.route(...) restituisce una funzione, che viene quindi chiamata.

    
risposta data 09.07.2015 - 15:12
fonte

Leggi altre domande sui tag