/ / Restituisce il valore nella funzione del generatore Python 2 - python

Valore di ritorno nella funzione del generatore Python 2 - python

Mi chiedo come posso scrivere una funzione generatore che ha anche la possibilità di restituire un valore. In Python 2, si ottiene il seguente messaggio di errore se una funzione generatore tenta di restituire un valore. SyntaxError: "return" with argument inside generator

È possibile scrivere una funzione dove specifichi se voglio ricevere un generatore o no?

Per esempio:

def f(generator=False):
if generator:
yield 3
else:
return 3

risposte:

4 per risposta № 1

Lettura obbligatoria: Capire i generatori in Python

Informazione chiave:

yield ovunque in una funzione lo rende un generatore.

La funzione è contrassegnata come generatore quando viene analizzato il codice. Pertanto, è impossibile commutare il comportamento della funzione (generatore / non generatore) in base all'argomento passato in runtime.