Mi chiedo se qualcuno possa escogitare un modo per verificare se una funzione deve restituire un valore significativo in Python. Cioè, per controllare se il valore di ritorno verrà utilizzato per qualsiasi cosa. Immagino che la risposta sia no, ed è meglio ristrutturare il flusso del mio programma. La funzione in questione estrae i suoi valori di ritorno da un socket di rete. Se il valore restituito non si sta per abituare, non voglio sprecare le risorse recuperando il risultato.Verificare se c'è qualcosa "in attesa" del valore di ritorno di una funzione
Ho provato già a utilizzare traceback per scoprire la linea chiamante, ma non ha funzionato. Ecco un esempio di ciò che avevo in mente:
>>> def func():
... print should_return()
...
>>> func()
False
>>> ret = func()
True
La funzione "sa" che il suo valore di ritorno è stato assegnato.
Qui è la mia soluzione attuale:
>>> def func(**kwargs):
... should_return = kwargs.pop('_wait', False)
... print should_return
...
>>> func()
False
>>> ret = func(_wait=True)
True
Tutte le funzioni in Python restituiscono sempre. Se non si restituisce esplicitamente, le funzioni restituiscono 'Nessuna'. – birryree
Le funzioni Python non restituiscono, infatti, sempre. Se restituiscono, tuttavia, restituiscono sempre un valore, che, se non specificato, è Nessuno. – Arafangion
Capisco che, ma il più delle volte una funzione che restituisce 'Nessuno' equivale a non restituire nulla. In questo caso, ho bisogno di controllare se deve restituire qualcosa di diverso da "Nessuno". – Violet