【发布时间】:2023-04-01 21:45:01
【问题描述】:
def positive_int(value):
try:
ivalue = int(value)
except:
raise argparse.ArgumentTypeError("%s is an invalid positive int value" % value)
if ivalue <= 0:
raise argparse.ArgumentTypeError("%s is an invalid positive int value" % value)
return ivalue
只要认为上面的代码丑陋至极。第一部分是引发错误,另一部分是检查值是否可满足。如果其中至少一个失败,则应引发错误。有没有办法将这些串起来检查,这样我就不需要重复行了?或者只是一个更好、更漂亮的替代品?非常感谢:)
【问题讨论】:
-
您可以将
except块中的代码更改为ivalue = -1,这样您只需编写一次错误文本¯\_(ツ)_/¯