#第九步:使用类来作为装饰器
class kuozhan:
#接收装饰器的参数(函数outer)
def __init__(self,arg):
print(self,arg)#arg就是la
self.arg = arg
#制作一个内部函数(真正的装饰器 函数kuozhan)
def __call__(self,func):
print(self,func)#func就是eat函数
#将func函数存入对象
self.func = func
return self.neweat
#在面向对象过程当中不提倡内使用内部函数,要提到前面
#定义称为一个成员方法
def neweat(self):
# 扩展功能1
print('饭前洗洗手')
# 调用基本函数
self.func()
# 扩展功能2
print('饭后溜溜腿')
#基本函数
@kuozhan('la')# 相当于 result = kuozhan("la"), eat = result(eat) reuslt是实例对象 被当做函数调用触发__call__函数
def eat():
print('吃饭')
#调用函数 eat在某种程度上算是kuozhan类的实例对象 把它当函数调用触发 call 魔术方法
print(eat)
eat()

最新文章

  1. 【转】JavaScript获取节点类型、节点名称和节点值
  2. centos6.3环境下升级python及MySQLdb的安装
  3. Linux下的sed流编辑器命令详解
  4. 【转】Ruby入门教程(一)
  5. Windows 8 系统完全上手指南 - 非常详尽的 Win8 系统入门学习手册与使用技巧专题教程!
  6. Windows API 之 CreateToolhelp32Snapshot
  7. 介绍下Python的两个标准库 os 和 sys
  8. 翻译 | 使用A-Frame打造WebVR版《我的世界》
  9. WPF DelegateCommand 出现Specified cast is not valid
  10. git push提交报错,提示文件过大,且去掉大文件也报同样的错误
  11. 爬虫学习--MOOC爬取豆瓣top250
  12. nio编程
  13. C语言的问题,头文件:keil也许有漏洞
  14. HDU 3371 Connect the Cities 最小生成树(和关于sort和qsort的一些小发现)
  15. pythonNet day04
  16. (译)Getting Started——1.2.4 Tutorial:Storyboard(故事板)
  17. 匿名union
  18. C#中构造函数和析构函数的用法
  19. HUE安装与使用
  20. Erlang 001--开篇

热门文章

  1. luogu P3657 (NOIP2017) 跳房子(二分+DP+单调队列)
  2. 并行开发 8.用VS性能向导解剖你的程序
  3. 一个简单的winform程序调用webservices
  4. shell截取小数点前后的子串
  5. 解决python中转化成json的方法不能序列化datetime类型数据(转)
  6. [Luogu1821][USACO07FEB]银牛派对Silver Cow Party
  7. SDOI2018凉凉记
  8. 1.WCF学习--创建简单的WCF服务
  9. DataInput接口说明及其实现类
  10. 富文本框编辑器实现:a、支持图片复制粘贴;b、支持word复制粘贴图文。