适配器Adapter
2024-09-24 22:32:49
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/3/4 22:13
# @Author : ChenAdong
# @email : aiswell@foxmail.com class HeroAD:
def __init__(self):
self.name = "wolf" def attack(self):
print("%s 输出了成吨的AD伤害" % self.name) class HeroAP:
def __init__(self):
self.name = "neverMore" def attack(self):
print("%s输出了成吨的AP伤害" % self.name) class Adapter(object):
def __init__(self, obj, adapter_method):
self.obj = obj
self.__dict__.update(adapter_method) def __getattr__(self, attr):
return getattr(self.obj, attr) if __name__ == "__main__":
ad = HeroAD()
ap = HeroAP()
obj_lst = []
obj_lst.append(Adapter(ad, dict(attack=ad.attack)))
obj_lst.append(Adapter(ap, dict(attack=ap.attack))) for i in obj_lst:
print(getattr(i, "name")) print("======================================") for j in obj_lst:
j.attack()
wolf
neverMore
======================================
wolf 输出了成吨的AD伤害
neverMore输出了成吨的AP伤害 Process finished with exit code 0
最新文章
- iOS设计模式
- git-----------------git:如何让git识别我修改了文件夹名字和文件名字的大小写问题。
- Python3 多线程下载代码
- NASM编译器的$和$$标记
- Out of resources when opening file 错误解决
- linq 日常关键字使用
- lightoj 1198 最大权重匹配
- .NET中DLL“没有可放置在工具箱的组件”—FreeTextBox
- FireMonkey Style Designer
- 8年,属于 HTML 5 春天的到来悄悄!
- NPinyin 中文转换拼音代码
- Number Sequence (HDU 1711)
- ServletRequest的一些知识点
- 无法运行 vue-manage-system@3.1.0 dev: `webpack-dev-server --inline --progress --
- Python打开新世界的大门-入门篇1
- drawable内存管理
- 能用padding,margin解决的不要使用伪元素,能用背景解决的也不要用伪元素
- Graham's Scan法求解凸包问题
- nodemon:让node自动重启
- 历年至今TVB剧集目录(持续更新...我已看过的推荐)