**类装饰器**

@类

4.1 用类装饰器来扩展原函数( 增加属性和方法 )

# 用类装饰器来扩展原函数, 通过对象函数化触发__call__方法,进行返回

class KuoZhan():

def __call__(self,cls):

return self.newfunc(cls)

def good(self):

print("新增的方法!")

def newfunc(self,cls):

def in_newfunc():

cls.addpty = "新增的属性"

cls.good = KuoZhan.good

# 此处返回的是一个实例化对象

return cls()

return in_newfunc

@KuoZhan() #1. KuoZhan() ==> obj 2. @KuoZhan()==> @obj ==> obj( ) 3. @KuoZhan() == obj( MyClass), ,触发__call__ ,得到 in_newfunc

class MyClass():

def func(self):

print("我是原类的方法")

# MyClass实际就是in_newfunc, MyClass() == in_newfunc() , 所以 obj = cls()

obj = MyClass()

obj.func()

obj.good()

print(obj.addpty)

>>>我是原类的方法

>>>新增的方法啦!

>>>新增的属性

原文:https://blog.51cto.com/dldxzjr/2388362

python装饰器由浅入深_由浅入深,走进Python装饰器-----第五篇:进阶--类装饰类相关推荐

  1. 由浅入深,走进Python装饰器-----第五篇:进阶--类装饰类

    上一篇:由浅入深,走进Python装饰器-----第四篇:进阶--函数装饰类 类装饰器 @类 类 4.1 用类装饰器来扩展原类( 增加属性和方法 ) # 用类装饰器来扩展原函数, 通过对象函数化触发_ ...

  2. python装饰器用法_深入浅出分析Python装饰器用法

    本文实例讲述了Python装饰器用法.分享给大家供大家参考,具体如下: 用类作为装饰器 示例一 最初代码: class bol(object): def __init__(self, func): s ...

  3. python装饰器理解_如何理解Python装饰器?

    首先,本垃圾文档工程师又来了.开始日常的水文写作.起因是看到这个问题如何理解Python装饰器?,正好不久前给人讲过这些,本垃圾于是又开始新的一轮辣鸡文章写作行为了. 预备知识 首先要理解装饰器,首先 ...

  4. java和python结合做项目_由浅入深Java+Python结合项目实战

    [课程内容] [初级项目:图片社交+电商导购+漂流瓶] 项目实现功能: 用户注册,登录,登出图片的多种上传方式,删除首页图片分类,排序和分页个人页管理图片分享 课程内容: 开发工具和Python语言介 ...

  5. python函数做菜单_学不会的Python函数——函数小案例(名片管理器)

    名片管理器是一款生活实用类软件,用来协助管理手机中的所有名片.为了帮助大家在实际应用中学会选择使用四种类型的函数,接下来我们开发一个名片管理器.这个案例要求使用函数完成各种功能,并且根据键盘的输入来选 ...

  6. python 播放本地音乐_实战项目—python实现本地音乐播放器

    随着网络的发展,我们已经很少将音乐下载到本地,而是直接在线听歌,方便而又直接.也许你用的音乐播放器是这个 也许是这个 这都不是重点,今天我们要用python自己打造一款音乐播放器. 具体思路 使用py ...

  7. python 南京大学_南京大学python课程系列笔记之python基础之第一周:走进python

    1.1 python简介: 历史,特点,应用 1.2 第一个python程序: 1.输出: print(字符串) print(变量) 2.输入: varibale = input("mess ...

  8. 读芯术python教程答案_攻略Python的免费书单:走进编程,从这五本书开始

    全文共1245字,预计学习时长5分钟 图源:unsplash Python一向是数据科学家最青睐的编程语言,它的语法相对简单.易于学习.除了机器学习数据库之外,还有非常活跃的开发人员社区,维护着各种库 ...

  9. 核心编程第五版 配套代码_攻略Python的免费书单:走进编程,从这五本书开始...

    全文共1245字,预计学习时长5分钟 图源:unsplash Python一向是数据科学家最青睐的编程语言,它的语法相对简单.易于学习.除了机器学习数据库之外,还有非常活跃的开发人员社区,维护着各种库 ...

最新文章

  1. 双向循环链表的插入排序
  2. 日志库EasyLogging++学习系列(6)—— 日志记录器
  3. 存储过程内基础语法---补充while循环
  4. mysql 学习笔记13 查询语句强化
  5. 【计算机组成原理】CISC和RISC
  6. 计算机描绘的基因结构图,利用IBS软件画基因mRNA的结构图
  7. OJ-1:时钟问题【九度1553】
  8. Windows命令行netsh winsock reset解决网络连接问题
  9. [nssl 1322][jzoj cz 2109] 清兵线 {dp}
  10. 计算机软件it是什么职业,it行业是什么工作做什么的?属于信息技术产业(工资可观)...
  11. 网站微调是什么意思?能带来什么作用?
  12. Dracena:实时数字孪生平台
  13. 公安部:河南特大套路贷受害人超95%为在校大学生
  14. 程序设计思维与实践 CSP-M2 (3/4/数据班)
  15. 单片机电脑计算机键盘设计,客制pc小键盘,CH552单片机HID键盘,电脑多媒体小键盘...
  16. 圣天诺 加密java_圣天诺Sentinel LDK 7.8壳加密的编译环境是什么?
  17. 压测工具ab的安装(mac下)
  18. PLSQL无客户端连接ORACLE
  19. 干了这碗鸡汤!“机器人版 Linux”ROS崛起背后的隐秘故事大揭秘
  20. SpringBoot+Vue 博客后台项目开发总结

热门文章

  1. gcc编译c文件_Linux下C语言程序的编译过程
  2. vim配置python开发环境_VIM插件管理及python开发环境配置
  3. python猜数游戏流程_python简单猜数游戏实例
  4. JFinal-layui v1.2.3 发布,极速开发企业应用系统
  5. 【Android】显示Emoji表情字符
  6. shell 脚本 变量 获取程序输出结果异常分析
  7. 基于VMwareWorkstation技术预览版2012上的WinServer8测试版安装
  8. 【Origin】晨起忆梦
  9. form 表单提交,防止重复提交,加token
  10. #include quot;*.cquot;文件的妙用