为什么返回None而不是True或False?

吉尔赫姆·罗塞蒂

此代码用于检查单词是否为回文,装饰器检查单词是否为字符串

def check(func):
    def string(w):
        if w != str(w):
            print('no')
        else:
            print('yes')
        func(w)
    return string



@check
def palindrome(w):
    print(w)
    inverse = ''
    inverse = w[::-1]
    if inverse == w:
        print('1')
        return True
    else:
        print('2')
        return False


print(palindrome("test"))

运行后:

yes
test
2
None

此时,一切都应该没问题,但我不知道为什么返回的None不是True还是False。

ŁukaszRogalski

您的检查装饰器将忽略装饰函数的返回值。您需要在包装函数中显式返回:

def check(func):
    def string(w):
        if w != str(w):
            print('no')
        else:
            print('yes')
        return func(w)
    return string

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么`None is None is None`返回True?

为什么此定义返回False而不是True?

为什么此代码返回false而不是true?

为什么当[[]是[]]而'{}是{}'返回False时,'()是()'返回True?

为什么false &&(false)?false:true返回true

为什么String.Concat返回“ True”而不是“ true”(与false相同)?

为什么Python返回None而不是value

为什么strpos是!== false而不是true?

我为什么要写!== false而不是== true?

为什么lodash`_.all([true,true,true],true);`返回`false`?

为什么 print(False == True and not True) 返回 False?

为什么“ [False,True]中的not(True)”返回False?

为什么从函数返回true或false?

为什么`(“” ||“ word”)== true`返回false?

为什么[False]中的False == False会返回True?

MongoDB/Express:为什么 Array.includes 返回 false 而不是 true?

为什么cSplit返回TRUE而不是字符

为什么(null == false)和(null == true)都返回false?

Python:返回 None 而不是 False

为什么该函数为 None 对象返回 False

为什么cv2.rectangle返回None而不是图像?

为什么Javascript用数字而不是True / False表示结果?

为什么(x ^ 0 === x)输出x而不是true / false?

它返回false而不是true

为什么... == True在Python 3中返回False?

相同的RegExp交替返回true和false。为什么?

为什么返回 true 或 false 并中断;不起作用?

为什么“true || undefined ? undefined : false;” 返回“未定义”?

为什么fstream.fail()返回true或false