pet.py 558 B

123456789101112131415161718192021222324252627282930313233
  1. from abc import ABCMeta, abstractmethod
  2. class Pet(object, metaclass=ABCMeta):
  3. def __init__(self, nickname):
  4. self._nickname = nickname
  5. @abstractmethod
  6. def make_voice(self):
  7. pass
  8. class Dog(Pet):
  9. def make_voice(self):
  10. print('%s: 汪汪汪...' % self._nickname)
  11. class Cat(Pet):
  12. def make_voice(self):
  13. print('%s: 喵...喵...' % self._nickname)
  14. def main():
  15. pets = [Dog('旺财'), Cat('凯蒂'), Dog('大黄')]
  16. for pet in pets:
  17. pet.make_voice()
  18. if __name__ == '__main__':
  19. main()