from abc import ABC, abstractmethod class Fruit(ABC): def __init__(self, name): self.name = name @abstractmethod def make_juice(self): pass class Apple(Fruit): def make_juice(self): print(f"制作{self.name}汁") class Grape(Fruit): def make_juice(self): print(f"制作{self.name}酒") class FruitFactory(): @classmethod def create_fruit(cls, name): if name == 'apple': return Apple('苹果') elif name == 'grape': return Grape("葡萄") fruit1 = FruitFactory.create_fruit('apple') fruit1.make_juice() fruit2 = FruitFactory.create_fruit('grape') fruit2.make_juice()