No estoy seguro de lo que realmente está tratando de hacer. Aquí hay algunas cosas que le pueden gustar:
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]"
Espere, usted dijo "filtro". ¿Está filtrando una serie de valores y solo quiere extraer los que cumplen un criterio? Eso es fácil en Python:
def foo_check(x):
return 0 <= x <= 100
filtered_list = [x for x in unfiltered_sequence if foo_check(x)]
Y dijiste "funciones de encadenamiento". Una vez más, eso es fácil si estamos hablando de filtrar una secuencia:
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: Aquí es una buena introducción a los iteradores y generadores en Python. http://www.learningpython.com/2009/02/23/iterators-iterables-and-generators-oh-my/
¿Por qué te molesta la función devuelve 'None'? –
encadenamiento de funciones, y si iba a tener que escribir Proveedores: excepto cláusulas para cada uno de ellos (debido a la nada que se pasa) – beoliver
use969617: ¿Qué pasaría si se devuelve ningún resultado? Si se saltó la ejecución, puede obtener la misma funcionalidad usando una declaración if para verificar '' None'', aunque si es más probable que obtenga un resultado que None, capturar excepciones es una mejor idea, ya que Python sigue el principio de 'pedir perdón, no permiso'. –