刚开始学python,记录一下python中@修饰符的使用,最简单的理解
定义
def funA(x):
print('funA')
ret=x()
print(ret)
return ret
@funA
def funB(x='B'):
print('funB')
ret=x
print(ret)
return ret
print(funB)
上述代码的输出为
funA
funB
B
B
B
@修饰符相当于执行了funB=funA(funB),funA函数首先输出funA,然后ret=x()这一句代码表示执行了一次funB函数,要注意x后面的括号一定不能省略,省略则只是返回funB的地址给ret,而不是执行funB函数。
我们看到代码的输出结果中输出了三个“B”,那是因为经过@funA这一句代码之后,相当于执行了funB=funA(funB),而funA函数的返回结果就是一个字符串“B”,所以funB的值变成了字符串“B”,此时funB不再是一个函数,若再执行funB(x)将会保错。
注:欢迎转载,转载请注明出处,谢谢!!!