Python 利用装饰器检测函数参数
来源:互联网 发布:中国房地产 知乎 编辑:程序博客网 时间:2024/05/17 04:03
学习python时看到有关装饰器的相关知识。参考博客http://www.cnblogs.com/huxi/archive/2011/03/31/2001522.html的思想自己也写了一个函数参数检测的装饰器,当然写的比较简单,只有几项功能,仅供学习,大神勿喷。
#coding: UTF-8'''ty 参数用于按序判断参数类型是否正确,argv参数用于判断具体某一参数类型是否正确example:ParamCheck(int,int,x=str)'''def ParamCheck(*ty,**argv): ty=map(ToCheckFun,ty) argv=dict((i,ToCheckFun(argv[i])) for i in argv) def common(fun): def deal(*fun_x,**fun_y): if ty: x_list=[a for a in fun_x] x_list_it=iter(x_list) result=[] for t_check in ty: r=t_check(x_list_it.next()) result.append(r) print 'param check result: ',result if argv: y_dic=dict((i,fun_y[i]) for i in fun_y) result={} for k in argv.keys(): f=argv[k](y_dic.get(k)) result[k]=f print 'param check result: ',result return fun(*fun_x,**fun_y) return deal return common#用于生成判断具体参数的函数def ToCheckFun(t): return lambda x:isinstance(x,t)@ParamCheck(int,str,c=int)def fun_1(a,b,c): passdef unit_test(): fun_1(1,2,c='ss')if __name__=='__main__': unit_test()
http://www.cnblogs.com/huxi/archive/2011/03/01/1967600.html
0 0
- Python 利用装饰器检测函数参数
- python中的装饰器,函数带参数的装饰器,带类参数的装饰器
- 利用装饰器给python的函数加上类型限制
- python装饰器:有参数的装饰器、不定长参数的装饰器、装饰有返回值的函数、通用的装饰器
- PYTHON 函数装饰器
- python 函数装饰器
- Python函数:装饰器
- Python 函数装饰器
- python函数装饰器
- python函数装饰器
- python 装饰器函数
- [python]带参数的装饰函数解析
- Python 函数装饰器探讨
- python函数之一 装饰器
- python 函数装饰器学习
- Python中的函数、装饰器
- Python - 函数/方法装饰器
- Python函数/方法装饰器
- Android之loadUrl访问网络资源与本地资源的方法
- android edittext textwatcher的用法
- MySQL数据导出
- 在windows上安装和配置git工具
- SQL中的coalesce函数与case语句
- Python 利用装饰器检测函数参数
- 使用SQL Server中COALESCE()函数的方法
- 2、java中的多线程
- 安装Hadoop
- More Detail On Workspaces And SmartParts (Introduction To The CAB/SCSF Part 16)
- adobe占用了哪些端口,服务端不要使用这些端口去加载swf
- linux内核网络监听哈希表介绍:如何将sk加入表和将sk移除表的过程
- 套接字(一):套接字相关的概念和两个主要的套接字类
- 【网络安全】中国互联网安全大会会议感受与思考