python装饰器的构建

#!/usr/bin/python3
# -*-coding:utf-8 -*-
# @Time : 2019/9/27 17:04
# @Author : v_ctaozhang

import functools

# 不带参数的装饰器
def log(func):
@functools.wraps(func)
def wrapper(*args,**kwargs):
print('call %s()'%func.__name__)
return func(*args,**kwargs)
return wrapper

@log
def now():
print("现在的时间是:2019927")

now()

# 带参数的装饰器
def log(text):
def decorator(func):
@functools.wraps(func)
def wrapper(*args,**kwargs):
print('%s %s():'% (text,func.__name__))
return func(*args,**kwargs)
return wrapper
return decorator

@log("我是带参数的装饰器")
def nowAndPrint():
print("我是被装饰器带参数包装的方法")

nowAndPrint()

# 打印出调用的函数名
print(now.__name__)
print(nowAndPrint.__name__)
posted @ 2019-09-27 17:45  JustLittle  阅读(198)  评论(0)    收藏  举报