装饰器

要学会装饰器,必须首先知道什么是闭包.

闭包:
  • 在函数中提出的概念

    • 就是内层函数对外层函数(非全局变量的运用)并且返回值是内部函数的引用.
  • 格式:
  - def 外部函数:def内部函数:return 内部函数
  • 案例:

    def func(a,b):c = 10def innerfunc():s = a+b+creturn innerfunc调用funcinner = func(5,8)这是可以调用内部函数:inner()
    - 重点在于理解内部函数的调用:
    - 不可以直接调用,只是要有一个变量去接这个函数才可以调用
    - 函数是可以作为参数和变量的,完成该赋值过程,实际上就是指针的概念

装饰器

装饰器的特点:

  1. 函数作为函数使用(函数a作为参数出现,函数b就接收函数a作为参数)
  2. 要有闭包的特点
  3. 装饰器在不改变原函数的情况下.

具体的实例:

def decorator(func):print('买一个毛绒玩具')def warrper():func()print('包装一个漂亮的包装纸!')print('系上一个漂亮的蝴蝶结!')return warrper@decoratordef gift():print('送给朋友一个礼物')gift()

一旦给某个函数添加装饰器装饰器做的动作:

  1. 将被装饰的函数作为参数传递给装饰器(gift作为参数传递给decorator.)
  2. 并且执行decorator.
  3. 将返回值扔出,并且把值赋值给gift函数(warrper赋值给gift)

登录装饰器实例代码:

    import timeislogin=0def login():username = input('请输入你的用户名:')password = input('请输入你的密码:')if username == 'admin' and password == '123456':print('登录成功!!!')islogin = Trueelse:print('登录失败!!!')islogin = Falsereturn islogindef verify_login(func):def warrep():if islogin:func()print('商品的总价格是100元')else:print('用户还没有登录,请赶快登录吧')f=login()if f:func()return warrep@verify_logindef pay():print('您正在付款....')time.sleep(2)print('付款成功')pay()

python装饰器学习相关推荐

  1. Python装饰器学习(九步入门)

    这是在Python学习小组上介绍的内容,现学现卖.多练习是好的学习方式. 第一步:最简单的函数,准备附加额外功能 1 2 3 4 5 6 7 8 # -*- coding:gbk -*- '''示例1 ...

  2. Python装饰器学习笔记

    Python装饰器 文章目录 Python装饰器 基本概念 从零开始的逐步分析 修饰后的问题 向被包装后的函数传递参数 使用场景:stdout日志 接受参数的装饰器 作为一个类的装饰器 总结 学习资料 ...

  3. Python装饰器学习笔记 1

    前言 最近跟着<流畅的Python>和<Python Cookbook>学习,看到装饰器部分,有些头大 倒不是因为概念难以理解,而是书和网上文章中有些地方有些矛盾之处 在简单学 ...

  4. Python 装饰器学习以及实际使用场景实践

    前言 前几天在看Flask框架,对于非常神奇的@语法,不是非常的理解,回来补装饰器的功课.阅读很多的关于装饰器的文章,自己整理一下,适合自己的思路的方法和例子,与大家分享. app = Flask(_ ...

  5. Python装饰器学习记录.

    装饰器 Python函数基础 python中万物皆对象,看一个实例: ​这里需要注意,单纯地函数名和函数名加括号是两种概念,前者表示该函数定义本身,而后者表示函数执行,实际上是函数的执行结果. 函数中 ...

  6. python 函数装饰器学习

    如果看<Python 核心编程>上的讲解还是不太清楚,我建议看这个链接: Python装饰器学习 看完之后,这里有一些总结: 其实总体说起来,装饰器其实也就是一个**函数**,一个用来** ...

  7. Python 装饰器 函数

    Python装饰器学习(九步入门):http://www.cnblogs.com/rhcad/archive/2011/12/21/2295507.html 浅谈Python装饰器:https://b ...

  8. python装饰器教学_Python装饰器学习(九步入门)

    这是在Python学习小组上介绍的内容,现学现卖.多练习是好的学习方式. 第一步:最简单的函数,准备附加额外功能 # -*- coding:gbk -*- '''示例1: 最简单的函数,表示调用了两次 ...

  9. Python|装饰器|执行时间|递归|动态属性|静态方法和类|继承和多态|isinstance类型判断|溢出|“魔法”方法|语言基础50课:学习记录(6)-函数的高级应用、面向对象编程、进阶及应用

    文章目录 系列目录 原项目地址: 第16课:函数的高级应用 装饰器(记录执行时间的例子) 递归调用 简单的总结 第17课:面向对象编程入门 类和对象 定义类 创建和使用对象 初始化方法 打印对象 面向 ...

最新文章

  1. mongodb和python交互
  2. Java基础学习总结(15)——java读取properties文件总结
  3. 【转】SAP LIST 画框的FORM
  4. FastReport.NET 中使用二维码
  5. Kenshin Cui's Blog
  6. 如何使用Spring优雅地处理REST异常
  7. vue面试有哪些插件_vue 前端框架面试问题汇总
  8. 春节海报背景素材,喜庆中国味!
  9. Java BufferedReader
  10. matlab和气象,matlab在气象上的应用
  11. 计算机主机组装报告,[转载]计算机硬件系统及组装【大一计算机实验报告】
  12. 夜神模拟器与mac os之间共享文件
  13. 计算机本科生优秀毕业论文,本科毕业论文计算机
  14. 无需安装软件架设NOD32升级服务器指南!
  15. 智商情商哪个重要_情商与智商哪个更重要?三个方面让你彻底明白
  16. 白马非马----继承 (转)
  17. 关于高速光耦6n137的使用总结_高速光耦6n137典型应用电路图汇总(多谐振荡/光电隔离器/光耦开关) - 全文...
  18. 依米花播放器仿绚丽彩虹播放器程序
  19. Ozone数据探查服务Recon的启用
  20. 【2022考研】 肖四大题(马原第一套)背诵笔记

热门文章

  1. 2022-2028年中国激光全息膜行业市场现状调研及市场需求潜力报告
  2. 2022-2028年中国阻燃纤维行业市场研究及前瞻分析报告
  3. 提高班第三周周记(中秋第二天)
  4. 命名实体识别学习笔记——使用Ltp
  5. 操作系统学习笔记 第四章:存储器管理(王道考研)
  6. 4D毫米波雷达Radar
  7. Yolov3 的 OneFlow 实现
  8. Paddle Lite端侧部署
  9. CVPR2020:训练多视图三维点云配准
  10. 图像超分辨率算法:CVPR2020