python核心编程-诊断函数

来源:互联网 发布:网络教育是全日制吗 编辑:程序博客网 时间:2024/05/16 11:56
使用在调试和性能测量方面上,创建一个设置测试环境的诊断函数,然后对有疑问的地方,调用函数
#!/usr/bin/env python# -*- coding: UTF-8 -*-def testit(func, *nkwargs, **kwargs):    try:        print '%s'% nkwargs        print '%s'% kwargs        retval = func(*nkwargs, **kwargs)        result = (True, retval)    except Exception, diag:        result = (False, str(diag))    print 'result:%s' % result[0]    return resultdef test():    funcs = (int, long, float)    vals = (1234, 12.34, '123', '12.34')    for eachFunc in funcs:        print '_'*20        for eachVal in vals:            retval = testit(eachFunc, eachVal)            if retval[0]:                print '%s(%s) = '% (eachFunc.__name__,'eachVal'),retval[1]            else:                print '%s(%s) = FAILED:'% (eachFunc.__name__,'eachVal'),retval[1]if __name__=='__main__':    test()

输出:

D:\Python27\test>func11.py____________________1234{}result:Trueint(eachVal) =  123412.34{}result:Trueint(eachVal) =  12123{}result:Trueint(eachVal) =  12312.34{}result:Falseint(eachVal) = FAILED: invalid literal for int() with base 10: '12.34'____________________1234{}result:Truelong(eachVal) =  123412.34{}result:Truelong(eachVal) =  12123{}result:Truelong(eachVal) =  12312.34{}result:Falselong(eachVal) = FAILED: invalid literal for long() with base 10: '12.34'____________________1234{}result:Truefloat(eachVal) =  1234.012.34{}result:Truefloat(eachVal) =  12.34123{}result:Truefloat(eachVal) =  123.012.34{}result:Truefloat(eachVal) =  12.34D:\Python27\test>
0 0
原创粉丝点击