标签:pre format play 技术分享 模式 code __init__ 适配器 div
大名鼎鼎~~
在兼容老系统和其它系统外调用时,用得着~
class Synthesizer: def __init__(self, name): self.name = name def __str__(self): return ‘the {} synthesizer‘.format(self.name) def play(self): return ‘is playing an electronic song‘ class Human: def __init__(self, name): self.name = name def __str__(self): return ‘{} the human‘.format(self.name) def speak(self): return ‘says hello‘
from extenrnal import Synthesizer, Human class Computer: def __init__(self, name): self.name = name def __str__(self): return ‘the {} computer‘.format(self.name) def execute(self): return ‘executes a program‘ class Adapter: def __init__(self, obj, adapted_methods): self.obj = obj self.__dict__.update(adapted_methods) def __str__(self): return str(self.obj) def main(): objects = [Computer(‘Intel‘)] synth = Synthesizer(‘moog‘) objects.append(Adapter(synth, dict(execute=synth.play))) human = Human(‘Bob‘) objects.append(Adapter(human, dict(execute=human.speak))) for i in objects: print(‘{} {}‘.format(str(i), i.execute())) if __name__ == "__main__": main()
标签:pre format play 技术分享 模式 code __init__ 适配器 div
原文地址:https://www.cnblogs.com/aguncn/p/9414181.html