zoukankan      html  css  js  c++  java
  • 适配器Adapter

    #!/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
    

      

  • 相关阅读:
    四则运算2设计思路
    关于这个学期的读书计划
    关于20分钟没写出来程序思路的原因
    软件工程理论方法与实践
    员工类
    除的类
    基类
    乘的类
    减的类
    加的类
  • 原文地址:https://www.cnblogs.com/chenadong/p/10473865.html
Copyright © 2011-2022 走看看