使用用户输入创建继承的类

时间:2018-11-05 10:52:03

标签: python python-3.x oop

我正在尝试编码产品库存项目。我偶然发现了这个问题,几天以来一直在搜寻,但找不到任何解决方法。

如何使用用户输入创建从基类继承的类。

这是基类:

class Product:
    def __init__(self, title, color, price):
        self.title = title
        self.color = color
        self.price = price

我要达到的目的是,用户可以通过说2来要求他自己添加产品,然后按2将要求他输入产品类型(外套),而不是特定于产品的参数,这将创建一个新类从基类继承。像这样:

class coats(Product):
    def __init__(self, material, size):
    self.material = material
    self.size = size

我可以使用用户输入来创建实例,但是创建继承的类却无法解决。谢谢您的帮助。谢谢。

1 个答案:

答案 0 :(得分:2)

虽然您可以使用type() function动态生成类,但您确实不是在这里想要这样做的。对用户生成的数据进行建模的代码生成只会导致非常难以管理动态查找属性和变量名称的代码。

在现有类中使用数据结构 来存储用户生成的数据。您只需要一本字典:

class Product:
    def __init__(self, type, price, properties):
        self.type = type
        self.price = price
        self.properties = properties

然后创建一个coat产品用途:

products = {}
products['coat'] = Product('coat', 10.0, {'color': 'some color', 'material': 'some material', size: 12})

其中各种值和products中的键不是文字,而是带有用户输入的变量。

类为您的应用程序建模,并包含数据。不要为数据创建单独的模型。