一点对于函数修饰符的初步理解,不对欢迎指正
import sys
import traceback
def de( f ):
def __call( *args, **kwargs ):
try:
return f( *args )#因为不同的func参数不同,这里使用*, 同时这里是用传入的f作为函数对象返回
except:
print 'param type error'
return __call#调用自己的__call函数,可以不写成私有的形式
@de
def func1( lst1, lst2 ):
for item in lst1+lst2:
print item
@de
def func2( dic ):
for k, v in dic.items():
print k, "--", v
if __name__ == '__main__':
func1( [1,2], [3,4] )
func2( {'1':2} )
输出结果为:
1
2
3
4
1 -- 2