def get_list(func):
	def inner(list):
		ret = []
		for v in list:
			if func(v):
				ret.append(v)
		return ret
	return inner
@get_list
def get_even(value):
	return (0 == (value % 2))
@get_list
def get_odd(value):
	return (0 != (value % 2))
@get_list
def get_multiples3(value):
	return (0 == (value % 3))
@get_list
def get_multiples3_even(value):
	return (0 == (value % 2)) and (0 == (value % 3))
@get_list
def get_multiples3_odd(value):
	return (0 != (value % 2)) and (0 == (value % 3))

list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
print(list)
print(get_even(list))
print(get_odd(list))
print(get_multiples3(list))
print(get_multiples3_even(list))
print(get_multiples3_odd(list))