• python 装饰器


     1 def func(func1):
     2     def add_func(a,b):
     3         print('lalala')
     4         return func1(a,b)
     5     return add_func
     6 
     7 
     8 def func1(x,y):
     9     print(x+y)
    10 
    11 
    12 func(func1)(1,2)
    13 
    14 #上面的函数就等于
    15 #@func
    16 #def func1(x,y):
    17 #     print(x+y)
    18 #func1(1,2)

    装饰器函数默认第一个参数是函数名

    里面需要增加功能的函数的参数    是和传入进来函数的参数是一样的

    一定要一 一对应  不然会报错

    然后装饰器带参数的

     1 #装饰器函数带参数
     2 #出去玩,不出去玩
     3 def arg_func(arg):
     4     def _func(func):
     5         def _func1():
     6             if arg == 'good':
     7                 print('出去玩')
     8             if arg == 'bad':
     9                 print('不出去玩')
    10             return func()
    11         return _func1
    12     return _func
    13 #arg_func 装饰器函数的参数接收函数,因为装饰器函数只能是接收一个函数作为参数
    14 #arg_func -> _func  接收我们装饰器函数的参数
    15 #_func -> _func1 闭包函数 添加功能
    16 #_func1 -> func 执行添加的功能,执行被装饰的函数 
    17 
    18 @arg_func('bad')
    19 def func():
    20     print('bad day')
    21 
    22 @arg_func('good')
    23 def func1():
    24     print('good day')
    25 
    26 func()
    27 func1()
       生命不息
       希望不止
       将来的你
       一定会感谢现在拼命的自己
       fighting!!!
  • 相关阅读:
    小数的编程
    小数的编程
    硬币趣味题
    硬币趣味题
    好玩的 emoji
    ThreadPoolExecutor使用介绍
    希尔排序
    OpenCms创建站点过程图解——献给OpenCms的刚開始学习的人们
    Linux C 编程内存泄露检測工具(二):memwatch
    C++封装、继承、多态
  • 原文地址:https://www.cnblogs.com/lonelyshy/p/9655761.html
Copyright © 2020-2023  润新知