第一段代码:没有添加@wraps

def user_login_confirm(name):

print(‘我是‘, name)

def deco_fun(view_func):

print(‘准备变身。。。‘)

def wrapper():

view_func()

print(‘变身完成。。。‘)

return wrapper

return deco_fun

@user_login_confirm(‘小辣椒‘)

def tony():

print(‘我是‘, tony.__name__)

tony()

运行结果:

我是 小辣椒

准备变身。。。

我是 wrapper

变身完成。。。

第二段代码:多加一个tony函数

def user_login_confirm(name):

print(‘我是‘, name)

def deco_fun(view_func):

print(‘准备变身。。。‘)

def wrapper():

view_func()

print(‘变身完成。。。‘)

return wrapper

return deco_fun

@user_login_confirm(‘小辣椒‘)

def tony():

print(‘我是‘, tony.__name__)

def tony():

print(‘我是‘, tony.__name__)

tony()

运行结果:

我是 小辣椒

准备变身。。。

我是 tony

第三段代码:添加了@wraps

from functools import wraps

def user_login_confirm(name):

print(‘我是‘, name)

def deco_fun(view_func):

print(‘准备变身。。。‘)

@wraps(view_func)

def wrapper():

view_func()

print(‘变身完成。。。‘)

return wrapper

return deco_fun

@user_login_confirm(‘小辣椒‘)

def tony():

print(‘我是‘, tony.__name__)

tony()

结论:

装饰器将被装饰函数变为了wrapper函数,连函数名也变了,通过@wraps(func)可以让函数名变回来。

python wraps_python装饰器中的@wraps相关推荐

  1. python functools import wraps_python装饰器中functools.wraps的作用详解

    # 定义一个最简单的装饰器 def user_login_data(f): def wrapper(*args, **kwargs): return f(*args, **kwargs) return ...

  2. python 装饰器中的@wraps

    就是将 被修饰的函数(wrapped) 的一些属性值赋值给 修饰器函数(wrapper) ,最终让属性的显示更符合我们的直觉. 详细的解释为 https://segmentfault.com/a/11 ...

  3. python中装饰器修复技术_python3之装饰器修复技术@wraps

    普通函数 def f(): """ 这是一个用来测试装饰器修复技术的函数 """ print("哈哈哈") if __n ...

  4. python 运行时间 装饰器_python 装饰器统计某个函数的运行时间

    import datetime def count_time(func): def int_time(*args, **kwargs): start_time = datetime.datetime. ...

  5. python中wraps_python装饰器函数wraps

    python的装饰器是python的重要特性之一,通过装饰器你能够在执行已有的操作的同时,去执行额外的操作.装饰器的主要作用在不改变原有函数或者类等内部的实现的前提下,对其进行功能的拓展.这是装饰器最 ...

  6. python中wraps_python 装饰器及标准库functools中的wraps

    最近在看 flask的视图装饰器 时,忽然想起预(复)习一下python的装饰器. 这里有一篇比较好的讲解装饰器的书写的 Python装饰器学习(九步入门) . 这里不单独记录装饰器的书写格式了,重点 ...

  7. python装饰器-python修饰器(装饰器)以及wraps

    Python装饰器(decorator)是在程序开发中经常使用到的功能,合理使用装饰器,能让我们的程序如虎添翼. 装饰器的引入 初期及问题的诞生 假如现在在一个公司,有A B C三个业务部门,还有S一 ...

  8. python编写装饰器_写python中的装饰器

    python中的装饰器主要用于在已有函数实现功能前附加需要输出的信息,下面将用实例展示我如何写装饰器. 首先分别尝试写装饰器装饰一个无参函数和一个有参函数(被装饰函数仅输出,无返回值情况下) 1 de ...

  9. 关于python中def的高级用法,def中套def,python函数装饰器

    Python函数装饰器 装饰器(Decorators)是 Python 的一个重要部分.简单地说:他们是修改其他函数的功能的函数.他们有助于让我们的代码更简短,也更Pythonic(Python范儿) ...

最新文章

  1. Nexenta和ParaScale发布开源存储产品
  2. ppi 各代iphone_算算你的手机 高PPI屏幕显示强机推荐
  3. Rocket - tilelink - FIFOFixer
  4. linux如何映射Windows下的磁盘为网络盘
  5. dump解析入门-用VS解析dump文件进行排障
  6. C#编程高并发的几种处理方法
  7. VBSCRIPT的循环挺好理解的
  8. C#LeetCode刷题之#661-图片平滑器( Image Smoother)
  9. MyCat分布式数据库集群架构工作笔记0021---高可用_单表存储千万级_海量存储_水平分表全局表
  10. mongoDB 3.0以前版本 - 入门指南、示例
  11. Linux 命令(42)—— join 命令
  12. svg html5 ajax,jQuery附加到AJAX加载的SVG问题
  13. Mac字体安装的方法?Mac怎么安装新字体?Mac字体安装教程
  14. 思科中如何给服务器添加个人信息,使用 RADIUS 服务器进行的外部 Web 身份验证...
  15. php readystate,ajax+php打造进度条 readyState各状态
  16. 光敏电阻规格型号的含义解读研究总结
  17. 对待前任你有遗憾么?
  18. Newtonsoft.Json.JsonConvert.SerializeObject()
  19. Python-可变和不可变类型
  20. amis:amis编辑器生成JSON使用方法。

热门文章

  1. 谷歌广告代运营,谷歌广告代投
  2. 【乐来乐爱】友谊地久天长
  3. linux 定时任务 (python 爬虫统计博客数据)
  4. 基于Itext的PDF国密电子签名及其实现
  5. vue.js是基于javascript的吗?
  6. 爬虫基础(案例:站长之家图片)
  7. 没有永恒不变的商机,知识付费项目副业不例外
  8. 使用BloodHound分析域的攻击路径
  9. kali2019安装运行BloodHound
  10. 汇编语言lcall d200c,明天就要交课设了,蜂鸣器老有杂音,求大神赐教