沈阳网站建设服务平台,拟定网站优化方案,深圳沙井做公司网站,东莞网站建设公司制作网站我有一连串的功能,全部定义在课程其他地方#xff1a;fus(roh(dah(inp)))其中inp是字典或bool(False).期望的结果是,如果inp或任何函数评估为False,则False由函数堆返回.我试图使用三元运算符,但是它们不能正确评估.def func(inp):return int(inp[value]) 1 if inp else Fals…我有一连串的功能,全部定义在课程其他地方fus(roh(dah(inp)))其中inp是字典或bool(False).期望的结果是,如果inp或任何函数评估为False,则False由函数堆返回.我试图使用三元运算符,但是它们不能正确评估.def func(inp):return int(inp[value]) 1 if inp else False抛出一个TypeError,bool不可下标,如果i False,因为inp [‘value’]在条件之前被求值.我知道我可以明确地做def func(inp):if inp False:return Falseelse:return inp[value] 1但是有很多功能,这几乎是我代码长度的四倍.它也一次又一次地重写完全相同的代码行,这对我来说这是做错事的方式.我怀疑有参数的装饰者是答案,但是我玩的越多,我就越不肯定.def validate_inp(inp):def decorator(func):def wrapper(*args):return func(inp) if inp else Falsereturn wrapperreturn decoratorvalidate_inp(inp)def func(inp):return int(inp[value]) 1不幸的是,装饰器调用引发了一个NameError,’inp’没有定义.但我不知道我是否正在使用装饰器,或者装饰器是错误的解决方案.寻找评论,批评,建议和/或健康检查.如果你发现这个试图解决你自己的问题你可能想要使用空字典而不是布尔值False.道具到chepner.在我的应用程序中,使用False是“好的”,没有提供任何优势,并导致一些块状的代码块.我发现一切都比较简单,使用一个空字典.我正在使用带有装饰器的函数,通过引用dict [‘value’],其中dict为空,捕获引发的KeyError.