Non sono sicuro di quello che stai provando a fare. Qui ci sono alcune cose che potrebbero piacerti:
def foo(foo_input, foo_default):
if 0 <= foo_input <= 100:
return f_input
else:
return foo_default
def foo(foo_input):
if 0 <= foo_input <= 100:
return f_input
raise ValueError, "foo_input was not in range [0, 100]"
Aspetta, hai detto "filtro". Stai filtrando una serie di valori e vuoi solo estrarre quelli che soddisfano un criterio? È semplice in Python:
def foo_check(x):
return 0 <= x <= 100
filtered_list = [x for x in unfiltered_sequence if foo_check(x)]
E hai detto "funzioni di concatenamento". Ancora una volta questo è facile, se stiamo parlando di filtrare una sequenza:
def foo_filter(seq):
for x in seq:
if 0 <= x <= 100:
yield x
def other_filter(seq):
for x in seq:
if meets_criterion(x):
yield x
def do_the_task(seq):
for x in other_filter(foo_filter(seq)):
do_something(x)
EDIT: Ecco una bella introduzione di iteratori e generatori in Python. http://www.learningpython.com/2009/02/23/iterators-iterables-and-generators-oh-my/
Perché ti dà fastidio la funzione restituisce 'Nessuna'? –
concatenando le funzioni, e se dovessi scrivere provare: tranne clausole per ognuna di esse (a causa del none che è passato) – beoliver
use969617: Cosa accadrebbe se non fosse restituito alcun output? Se è stata saltata l'esecuzione, è possibile ottenere la stessa funzionalità utilizzando un'istruzione if per verificare la presenza di '' None'' - anche se è più probabile che otterrai un risultato di None, prendere le eccezioni è un'idea migliore, come Python segue il principio per il perdono, non per il principio del permesso. –