用法:定义函数的前一行,当解释器读到@符号时,跳过这一行,先读取下面的函数,然后将整个函数作为参数传递到@这一行的函数,再执行@这一行的函数。具体看下面的例子:
def check_num(func):
strs = func()
if strs.isdigit():
print('输入为数字:{}...'.format(strs))
else:
print('输入不是数字:{}...'.format(strs))
@check_num
def get_input():
strs = input('请输入:')
return strs
上面两个函数check_num函数用于检查字符串是否为数字,get_input用于获取用户的输入,@check_num位于get_input前面,当解释器读到这里时,先读取get_input函数,然后将函数get_input作为参数给check_num,再执行check_num。
运行结果如下:
请输入:123
输入为数字:123...