• 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 (0 == (value % 2))
    12. @get_list
    13. def get_odd(value):
    14. return (0 != (value % 2))
    15. @get_list
    16. def get_multiples3(value):
    17. return (0 == (value % 3))
    18. @get_list
    19. def get_multiples3_even(value):
    20. return (0 == (value % 2)) and (0 == (value % 3))
    21. @get_list
    22. def get_multiples3_odd(value):
    23. return (0 != (value % 2)) and (0 == (value % 3))
    24.  
    25. list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
    26. print(list)
    27. print(get_even(list))
    28. print(get_odd(list))
    29. print(get_multiples3(list))
    30. print(get_multiples3_even(list))
    31. print(get_multiples3_odd(list))