• Source
    1. def get_list(func):
    2. def inner(list):
    3. ret = []
    4. for v in list:
    5. if func(v):
    6. ret.append(v)
    7. return ret
    8. return inner
    9. @get_list
    10. def get_even(value):
    11. return is_even(value)
    12. @get_list
    13. def get_odd(value):
    14. return is_odd(value)
    15. @get_list
    16. def get_multiples3(value):
    17. return is_multiples3(value)
    18. @get_list
    19. def get_multiples3_even(value):
    20. return (is_multiples3(value) and is_even(value))
    21. @get_list
    22. def get_multiples3_odd(value):
    23. return (is_multiples3(value) and is_odd(value))
    24.  
    25. def is_even(value):
    26. return (0 == (value % 2))
    27. def is_odd(value):
    28. return (0 != (value % 2))
    29. def is_multiples3(value):
    30. return (0 == (value % 3))
    31.  
    32. list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
    33. print(list)
    34. print(get_even(list))
    35. print(get_odd(list))
    36. print(get_multiples3(list))
    37. print(get_multiples3_even(list))
    38. print(get_multiples3_odd(list))