zoukankan      html  css  js  c++  java
  • python 装饰器简介

    24、装饰器
        1、@ + 函数名:#1自动执行outer函数并且将下面的函数名f1当做参数传递
                      #2将outer函数的返回值,重新赋值给f1.
    def outer(func):
        def inner():
            print('before')
            r = func()
            print('after')
            return r      ==>有返回值时这么处理。
        return inner
    @outer
    def f1():
        print('nihao')
        return 'nimei'
    注意:定义函数,未调用函数内部不执行;函数名代指的函数的整体。
    2、应用:
    def outer(func):
        def inner(*args,**kwargs):
            print('before')
            r = func(*args,**kwargs)
            print('after')
            return r
        return inner
    @outer
    def f1():
         pass
    @outer
    def f2():
         pass
         .......
    @outer
    def    f100():
              pass
     
    3、有参数时: 万能参数。。
    def outer(func):
        def inner(*args,**kwargs):
            print('before')
            r = func(*args,**kwargs)
            print('after')
            return r
        return inner
    @outer
    def f1(arg):
        print(arg)
        return 'nimei'
    @outer
    def f2(a,b):
         print(a,b)
  • 相关阅读:
    Dockfile 使用 非root 用户运行容器
    Latex 小记
    Tmux 小技巧
    配置本地 overleaf
    arm板载ubuntu18.04系统安装QT4.8.7
    移植32位QT程序到ubuntu18.04
    TLS1.0禁用问题
    TLS1.0禁用问题
    Delphi程序“自杀”的有效办法
    Delphi7程序出现“EOSError code8-存储不足”问题的分析与解决
  • 原文地址:https://www.cnblogs.com/cfj271636063/p/5753652.html
Copyright © 2011-2022 走看看