根据设置或用户输入获取正确的Python对象

时间:2016-09-29 08:30:24

标签: python inheritance factory instantiation

我在一个模块shape.py中有两个继承的类:

class Shape(object):

class Triangle(Shape):

class Square(Shape):

在我的主要代码中,我想实例化一个Shape,但我不知道它会是什么样的形状。形状取决于用户输入或设置。

根据Python中的设置或用户输入获取正确实例的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以创建一个字典,其中预期输入为键,类为值(请注意,没有()):

class_dict = {'triangle': Triangle, 'square': Square}

user_input = input()

shape_object = class_dict[user_input]()

如果用户输入triangle,则shape_object将是Triangle个实例,如果用户输入square,那么shape_object将是{{1}实例。

请注意,这是一个基本示例,如果用户既未输入Square也未输入'triangle',则会引发'square'