本文介绍了有关python assert函数的建议的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在多个脚本中多次使用assert,我想知道是否有人对实现此目标的更好方法提出了建议,而不是我在下面创建的功能.
I'm using assert multiple times throughout multiple scripts, I was wondering if anyone has any suggestions on a better way to achieve this instead of the functions I have created below.
def assert_validation(expected, actual, type='', message=''): if type == '==': assert expected == actual, 'Expected: %s, Actual: %s, %s' %(expected, actual, message) elif type == '!=': assert expected != actual, 'Expected: %s, Actual: %s, %s' %(expected, actual, message) elif type == '<=': assert expected <= actual, 'Expected: %s, Actual: %s, %s' %(expected, actual, message) elif type == '>=': assert expected >= actual, 'Expected: %s, Actual: %s, %s' %(expected, actual, message) def assert_str_validation(expected, actual, type='', message=''): if type == '==': assert str(expected) == str(actual), 'Expected: %s, Actual: %s, %s' %(expected, actual, message) elif type == '!=': assert str(expected) != str(actual), 'Expected: %s, Actual: %s, %s' %(expected, actual, message) elif type == '<=': assert str(expected) <= str(actual), 'Expected: %s, Actual: %s, %s' %(expected, actual, message) elif type == '>=': assert str(expected) >= str(actual), 'Expected: %s, Actual: %s, %s' %(expected, actual, message)推荐答案
这当然更短了...您真的可以不只是使用assert expected == actual还是脚本本身中的任何内容吗?
Well this is certainly shorter... can you really not just use assert expected == actual or whatever in the scripts themselves?
def assert_validation(expected, actual, type='', message='', trans=(lambda x: x)): m = { '==': (lambda e, a: e == a), '!=': (lambda e, a: e != a), '<=': (lambda e, a: e <= a), '>=': (lambda e, a: e >= a), } assert m[type](trans(expected), trans(actual)), 'Expected: %s, Actual: %s, %s' % (expected, actual, message) def assert_str_validation(expected, actual, type='', message=''): assert_validation(expected, actual, type, message, trans=str)更多推荐
有关python assert函数的建议
发布评论