zoukankan      html  css  js  c++  java
  • 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!!!
  • 相关阅读:
    HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth之完全详解
    CSS——display和float
    jQuery对象与dom对象相互转换
    jQuery选择器
    CSS样式表继承详解
    CSS position relative absolute fixed
    HTML——选择器
    2018-03-30
    IDEA检出SVN项目
    IDEA快捷键
  • 原文地址:https://www.cnblogs.com/lonelyshy/p/9655761.html
Copyright © 2011-2022 走看看