装饰器修正以及装饰器的语法糖@

Posted xiamenghan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了装饰器修正以及装饰器的语法糖@相关的知识,希望对你有一定的参考价值。

1.

import time


def index():
    print(welcome)
    time.sleep()
    return 123



def outter(func):
    #func=最原始的那个index的内存地址
    def wrapper():
        start=time.time()
        res=func()#最原始那个index的内存地址()
        stop=time.time()
        print(time is %s%(stop-start))
        return res
    return wrapper

index=outter(index)#index=outter(最原始那个index的内存地址)
#index=wrapper函数的内存地址

res=index()
print(res)

2.

 

import time

def index():
    print(welcome)
    time.sleep(1)
    return 125


def home(name):
    print(welcome %s%name)
    time.sleep(1)

def outter(func):
    #func=最原始那个home的内存地址
    def wrapper(*args,**kwargs):
        start=time.time()
        res=func(*args,**kwargs)
        stop=time.time()
        print(time is %s%(stop-start))
        return res
    return wrapper

index=outter(index)#index=outter(最原始那个index的内存地址)#index=wrapper函数的内存地址
home=outter(home) #index=outter(最原始那个home的内存地址)#home=wrapper函数的内存地址


home(han)#wrapper(‘han‘)
res=index()#wrapper
print(res)

 

 

# @装饰器的名字:要在被装饰对象正上方单独一行写上

技术分享图片
import time
def timmer(func): # func=最原始那个home的内地址
    def wrapper(*args,**kwargs):
        start=time.time()
        res=func(*args,**kwargs)
        stop=time.time()
        print(run time is %s %(stop-start))
        return res
    wrapper.__doc__=func.__doc__
    wrapper.__name__=func.__name__
    return wrapper

@timmer #index=timmer(index) ##index=timmer(最原始那个index的内地址) #index=wrapper函数的内地址
def index():
    """这是index功能"""
    print(welcome to index page)
    time.sleep(3)
    return 123

@timmer #home=timmer(home) #index=timmer(最原始那个home的内地址) #home=wrapper函数的内地址
def home(name):
    """这是home功能"""
    print(welcome %s to home page %name)
    time.sleep(1)

# home(‘egon‘) #wrapper(‘egon‘)
# index() #wrapper()

# print(help(index))
# print(help(home))
# print(index.__doc__)

print(index.__name__)
‘‘‘

from functools import wraps

import time
def timmer(func): # func=最原始那个home的内地址
    @wraps(func)
    def wrapper(*args,**kwargs):
        start=time.time()
        res=func(*args,**kwargs)
        stop=time.time()
        print(‘run time is %s‘ %(stop-start))
        return res
    return wrapper

@timmer
def index():
    """这是index功能"""
    print(‘welcome to index page‘)
    time.sleep(3)
    return 123

@timmer
def home(name):
    """这是home功能"""
    print(‘welcome %s to home page‘ %name)
    time.sleep(1)

print(help(index))
print(index.__name__)
View Code

 

以上是关于装饰器修正以及装饰器的语法糖@的主要内容,如果未能解决你的问题,请参考以下文章

python-装饰器的最终形态和固定格式 语法糖

python学习day07 高阶函数 装饰器 语法糖

语法糖

python学习笔记之装饰器(语法糖)

Python进阶装饰器(Decorator)

装饰器