Python笔记-函数装饰器的缺点
生活随笔
收集整理的這篇文章主要介紹了
Python笔记-函数装饰器的缺点
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
裝飾器的好處,復用了代碼,缺點就是原函數的元信息不見了
比如函數docstring、_name_、參數列表
如下代碼:
def use_logging(level = "debug"):def decorator(func):def wrapper(*args, **kwargs):print("[%s] %s is running" % (level, func.__name__))return func(*args, **kwargs)return wrapperreturn decoratordef bar1():print("i am bar1")def bar2():print("i am bar2")if __name__ == "__main__":#這里就是帶參數的原形f = use_logging(level = "info")(bar1)f()print(f.__name__)print(f.__doc__)程序運行截圖如下:
這里想讓他打印bar1。
這里要使用functools
如下代碼:
import functools def use_logging(level = "debug"):def decorator(func):@functools.wraps(func)def wrapper(*args, **kwargs):print("[%s] %s is running" % (level, func.__name__))return func(*args, **kwargs)return wrapperreturn decoratordef bar1():print("i am bar1")def bar2():print("i am bar2")if __name__ == "__main__":#這里就是帶參數的原形f = use_logging(level = "info")(bar1)f()print(f.__name__)print(f.__doc__)運行截圖如下:
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Python笔记-函数装饰器的缺点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QML笔记-Particle的基本使用(
- 下一篇: Python笔记-函数装饰器