我在一个模块shape.py中有两个继承的类:
class Shape(object):
class Triangle(Shape):
class Square(Shape):
在我的主要代码中,我想实例化一个Shape
,但我不知道它会是什么样的形状。形状取决于用户输入或设置。
根据Python中的设置或用户输入获取正确实例的最佳方法是什么?
答案 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'
。