我不确定我的问题有一个具体的答案,但无论如何。我正在编写一个有很多参数的函数,每个函数都可以是None
或者有一个有限的值范围。由于我不相信用户给我很好的输入,我必须检查每个参数的类型,如果它的类型正确(或None
),那么我想看看它是否在正确的范围内。这意味着我有这样大量的代码:Python中的逻辑参数检查
# size
if isinstance(size, str):
if size in range(4):
self.data[uid]['size'] = int(size)
else:
warnings.warn("ID %s: illegal size %s" % (uid, size))
self.data[uid]['size'] = None
elif size == None:
self.data[uid]['size'] = None
else:
warnings.warn("ID %s: illegal size %s" % (uid, str(size)))
self.data[uid]['size'] = None
等。这是成为重复的,我想知道是否有可能是会自动执行此,抛出异常/警告,并减少代码冗余库。
感谢
`我必须检查每个参数的类型`听起来像你做错了。你应该只用它作为预期的类型,然后捕捉失败。 – Falmarri 2011-01-19 22:03:21
我曾经认为我也必须检查输入。当我停止这样做时,编程变得更加容易。假设没关系,并处理错误。这与python成语“容易要求宽恕而不是权限”有关。 – Wilduck 2011-01-19 22:07:46