#!/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("现在的时间是:2019年9月27日")
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__)