# 原来的几个返回list的函数,具体干嘛不管,示例用
def even_element(lst):
return [n for n in lst if n%2 == 0]
def odd_element(lst):
return [n for n in lst if n%2 == 1]
def link_list(lst1, lst2):
l = deepcopy(lst1)
l.extend(lst2)
return l
a = range(5)
b = range(10)
print even_element(a)
print odd_element(a)
print link_list(a, b)
from copy import deepcopy
# 用装饰器
def list_to_str(func):
def wrapper(*args, **kwargs):
rtn_lst = [str(n) for n in func(*args, **kwargs)]
return ','.join(rtn_lst)
return wrapper
# 此时这些函数都返回str型
@list_to_str
def even_element(lst):
return [n for n in lst if n%2 == 0]
@list_to_str
def odd_element(lst):
return [n for n in lst if n%2 == 1]
@list_to_str
def link_list(lst1, lst2):
l = deepcopy(lst1)
l.extend(lst2)
return l
a = range(5)
b = range(10)
print even_element(a)
print odd_element(a)
print link_list(a, b)
带参数的装饰器