类中@的用法
给Student类添加一个属性
class Scale():
#设置宽
@property
def width(self):
return self._width
@width.setter
def width(self,value):
self._width = value
#设置高
@property
def height(self):
return self._width
@height.setter
def height(self,value):
self._width = value
#面积只设置getter方法通过长乘高得到
@property
def resolution(self):
return self._width*self._height
@函数名
def A(fn):
fn()#执行函数
return '执行a完毕'
@A()
def B():
return '执行b完毕'
这个代码相当于:
B = A(B)
即,将B函数代入到A中,执行完毕后将A的返回结果赋给函数B
在之后执行B时,它就会执行A中return的语句。
被“@函数”修饰的函数不再是原来的函数,而是被替换成一个新的东西(取决于装饰器的返回值),即如果装饰器函数的返回值为普通变量,那么被修饰的函数名就变成了变量名;同样,如果装饰器返回的是一个函数的名称,那么被修饰的函数名依然表示一个函数。