zoukankan      html  css  js  c++  java
  • Python装饰器

    不带参数的简单装饰器

    def user_test(func):#此处func是bar函数
        def wrapper(*args,**kwargs):
            print("%s is running" %func.__name__)
            return func(*args,**kwargs)
        return wrapper
    
    @user_test
    def bar():
        print("i am bar")
    
    bar()

    函数带参数的装饰器

    def deco(func):
        def _deco(a, b):
            print("before myfunc() called.")
            a += 1
            b += 1
            ret = func(a, b)
            print("after myfunc() called. result: %s" % ret)
            return ret
        return _deco
    
    
    @deco
    def myfunc(a, b):
        print(" myfunc(%s,%s) called." % (a, b))
        return a + b
    
    myfunc(1,2)

    带参数的装饰器 :

    def deco(arg):  
        def _deco(func):  
            def __deco():  
                print("before %s called [%s]." % (func.__name__, arg))  
                func()  
                print("  after %s called [%s]." % (func.__name__, arg))  
            return __deco  
        return _deco  
     
    @deco("mymodule")  
    def myfunc():  
        print(" myfunc() called.")  
     
    @deco("module2")  
    def myfunc2():  
        print(" myfunc2() called.")  
      
    myfunc()  
    #这段代码是抄别人的
  • 相关阅读:
    ListView自定义滑动条
    使用天天模拟器开发Android应用
    自定义对话框
    显示下载进度
    PullToRefresh的使用
    Cookie
    Servlet
    HTTP
    svn
    转:MAVEN常用命令
  • 原文地址:https://www.cnblogs.com/lzh1118/p/7767168.html
Copyright © 2011-2022 走看看