#!/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
原文:https://www.cnblogs.com/chenadong/p/10473865.html