这有什么问题吗?
def decoratorIsNumber( func ):
def isNumeric( a , b):
a = a if str(a).isnumeric() else 0
b = b if str(b).isnumeric() else 0
func( a , b )
return isNumeric
@decoratorIsNumber
def addthenumbers( a , b ):
print( a )
print( b )
print( a + b )
return a + b
print( addthenumbers( "l", 10) )
我希望我的最后一个打印语句能得到 10...但我没有得到
0
10
10
None
Process finished with exit code 0
您需要在 isNumeric 函数中返回 func(a, b) 的结果。目前,没有任何回报。
更正:
def decoratorIsNumber(func):
def isNumeric(a, b):
a = a if str(a).isnumeric() else 0
b = b if str(b).isnumeric() else 0
return func(a, b)
return isNumeric