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