首页 > 其他 > 详细

适配器Adapter

时间:2019-03-04 23:03:48      阅读:219      评论:0      收藏:0      [点我收藏+]
#!/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

  

适配器Adapter

原文:https://www.cnblogs.com/chenadong/p/10473865.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!