python代码:参数为一个指定的函数
这段代码很精炼,以后coding时可以效仿着写。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
@author:
@file:testit.py
@time:2022-03-14 22:31
"""
# 书《Python核心编程(第二版).pdf》,作者:Wesley J. Chun
# 例11.5 测试函数(testit.py)
# testit()用其参数地调用了一个给定的函数,成功的话,返回一个和那函数返回值打包的True的返回值,或者False和失败的原因。
def testit(func, *nkwargs, **kwargs):
try:
retval = func(*nkwargs, **kwargs)
result = (True, retval)
except Exception as diag:
result = (False, str(diag))
return result
def test():
funcs = (int, float)
vals = (1234, 12.34, '1234', '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 = FAILED, %s.' % ((eachFunc.__name__, eachVal), retval[1]))
if __name__ == '__main__':
test()
输出结果:
____________________
('int', 1234) = (1234)
('int', 12.34) = (12)
('int', '1234') = (1234)
('int', '12.34') = FAILED, invalid literal for int() with base 10: '12.34'.
____________________
('float', 1234) = (1234.0)
('float', 12.34) = (12.34)
('float', '1234') = (1234.0)
('float', '12.34') = (12.34)
Process finished with exit code 0



