python装饰器

2022年1月28日14:59:33 发表评论 1,990 views

python装饰器

class Rectangle:

    def __init__(self, length, width):
        self.length = length
        self.width = width

    def area(self):
        areas = self.length * self.width
        return areas

    @property  	# 就像访问属性一样
    def area(self):
        return self.width * self.length

    @staticmethod  	# 静态方法  和class类断开联系
    def func():  	# self  在调用的时候会报错
        print(‘staticmethod func’)

    @classmethod  	# 类方法 
    def show(cls):  	# cls 代表类本身 
        print(cls)
        print('show fun')

 

类装饰器

class Test_Class:
    def __init__(self, func):
        self.func = func

    def __call__(self):
        print('类')
        return self.func

@Test_Class
def fun_test():
    print('这是个测试函数')

需要定义 __call__ 方法

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: