python中的‘@’ 装饰器

清疚 2022-05-23 01:42 284阅读 0赞

示例:

  1. def fun_a(arg):
  2. print('a')
  3. arg()
  4. @fun_a
  5. def fun_b():
  6. print('b')
  7. 输出:
  8. C:\Python34\python.exe C:/Users/Administrator/Desktop/test.py
  9. a
  10. b
  11. Process finished with exit code 0

上边的函数fun_a()就是一个装饰器,fun_b()引用了fun_a()函数来装饰自己,其中6-8行就相当于fun_a(fun_b())
形象的理解就是,本来身上穿着短袖,后来又加上(装饰上)一件大衣。而这短袖就是示例的fun_b(),大衣就是fun_a()了。

  1. 装饰器可以装饰的有:函数、类
  2. 装饰器本身就是一个函数
  3. 装饰器可以提高代码复用率,减少重复代码

    使用:

    -- coding:utf-8 --

    def decorator_name(n): #

    1. pass # 装饰器函数的内容
    2. n() # 必须有,这里的n和上边的n只是一个命名,可以是其他的字母或字符串
  1. @decorator_name
  2. def function_name(): # 被装饰的函数
  3. pass # 函数的内容

上边的function_name()函数被修饰后就是decorator_name(function_name())

发表评论

表情:
评论列表 (有 0 条评论,284人围观)

还没有评论,来说两句吧...

相关阅读