此代码用于检查单词是否为回文,装饰器检查单词是否为字符串
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。
您的检查装饰器将忽略装饰函数的返回值。您需要在包装函数中显式返回:
def check(func):
def string(w):
if w != str(w):
print('no')
else:
print('yes')
return func(w)
return string
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句