zoukankan      html  css  js  c++  java
  • python 装饰器的用法

    为什么要使用装饰器?

    在不改变原函数功能的情况,为了添加新的功能 我们可以在函数运行前后给函数添加新的功能

     1 def outer(func):
     2     #fun()等于原f1函数
     3     def inner():
     4         print('ccccc')
     5         r=func()
     6         print('dddd')
     7         return r
     8     return inner
     9 @outer
    10 #@outer代表运行了2个步骤:1.将f1作为参数运行outer函数,2.新函数f1=inner()
    11 def f1():
    12     print('很复杂')
    13 r=f1()
    14 print(r)
    15 #输出:ccccc
    16 #     很复杂
    17 #    dddd
    18 #    None

    两个装饰器的作用

    def outer_1(func):
        def inner(*args,**kwargs):
            print('aaaa')
            r=func(*args,**kwargs)
            print('bbbb')
            return r
        return inner
    
    def outer(func):
        def inner(*args,**kwargs):
            print('ccccc')
            r=func(*args,**kwargs)
            print('dddd')
            return r
        return inner
    
    @outer_1
    @outer
    def f1(a1,a2):
        print('很复杂')
        return a1+a2
    
    r=f1(2,4)
    print(r)
    #输出:
    aaaa
    ccccc
    很复杂
    dddd
    bbbb
    6
  • 相关阅读:
    Spock
    Spock
    Spock
    Spock
    Spock
    Spock
    Python3 与 Python2 的不同
    python 文件处理
    Django 数据迁移
    Python 特殊方法
  • 原文地址:https://www.cnblogs.com/wangbinbin/p/7134435.html
Copyright © 2011-2022 走看看