装饰器也是一种函数,它可以接受函数作为参数,可以返回一个函数。接收一个函数参数,内部对其处理,动态增强函数功能。
装饰器定义:
def out(func_args): #外围函数
def inter(*args,**kwargs): #内嵌函数
do something #可以调用函数func_args函数,对返回结果进行处理,也可以不调用函数
return func_args(*args,**kwargs) #可以不返回func_args函数
return inter #返回内嵌函数
使用:
@out
def func(func_args):
func(func_args)
classmethon装饰器:使类函数不经过实例化而直接被调用
用法:
@classmethod
def func(cls,...): #cls代表操作的是类,普通的类函数用的是self。使用classmethon装饰器的类函数不能调用self类函数,可以调用类属性,而self类函数可以调用classmethon类函数
do
staticmethod:使类函数不经过实例化直接被调用,使用了该装饰器的类函数不能传递self或cls参数,且无法在该函数内部调用其他类函数或类变量,
@staticmethod
def func(...):
property:类函数加上该装饰器,调用函数的时候可以不加括号,类似于调用属性。实例化调用,不能直接通过类名调用。可以修改函数返回值
@property
def func(self): #无参数,可以调用类实例属性
do