100: print "too large"; return True return False if -6ren">
gpt4 book ai didi

python - 在 "if"语句的返回元组中使用 bool 值?

转载 作者:行者123 更新时间:2023-12-01 03:48:03 24 4
gpt4 key购买 nike

现状:

def isTooLarge(intValue):
if intValue > 100: print "too large"; return True
return False

if isTooLarge(101): break

现在我想通过返回错误消息文本而不是打印它来使函数更加“库友好”:

def isTooLarge(intValue):
if intValue > 100: return True, "too large"
return False

bln,str = isTooLarge(101)
if bln: specialprint(str); break

知道我如何才能再次将其评估为一句台词吗? (类似于“if ,str isTooLarge(101):specialprint(str);break”或者这里的Python方式是什么?

将错误消息放入像“lasterrormessage”这样的全局变量中并保持其余部分不变是没有问题的。

最佳答案

通过使用错误,就像错误一样,您可以更加“图书馆友好”:

def CheckNotTooLarge(intValue):
if intValue > 100:
raise ValueError("too large") #or AssertionError
return #or maybe do something else?

然后用户可以使用 try: except: 完全单独地使用错误消息

try:
CheckNotTooLarge(101)
except ValueError:
traceback.print_exc() #print error message
#handle too large
else:
#handle not too large

我可以看到,如果您只想检查而不处理错误,这会很快变得烦人,因此我建议使用两个函数,一个仅返回 bool 值,不需要额外的工作,另一个则引发/返回错误文本:

def isTooLarge(intValue):
return intValue<=100 #now this is a one liner!

def checkIsTooLarge(intValue):
"uses isTooLarge to return an error text if the number is too large"
if isTooLarge(intValue):
return "too large" #or raise ...
else:
return False

关于python - 在 "if"语句的返回元组中使用 bool 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38666852/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com