我需要写一个“商店”.我有类ClothingItem – 鞋子,裤子和衬衫都继承自ClothingItem.现在我正在上课课程(列表).我可以添加鞋子,裤子和衬衫,并获得总计数(inventory.len()).现在爸爸要我告诉他有多少鞋子在库存,有多少裤子,等等.他说如果我的商店开始销售短裤或护腿,我就不允许触摸我的库存类.他说过将TYPE传递给长度函数,但我无法弄清楚如何向Google询问.他在C#工作,所以他只知道如何做到这一点,而不是
Python.
所以……有人可以告诉我在哪里想出来这个吗?他说,如果你发布他会知道的代码,只是让我更难做,所以请不要发给我代码!告诉我应该在哪里看,我会非常感激.
最佳答案 如果您的类ClothingItem包含一个方法,如:in_stock()返回从self.name和self.quantity构建的字符串,则每个子类(Shoe,Pant,Shirt,Legging等)只需要正确分配self.name被实例化.
这样做提供了一个叫做polymorphism的东西(尽管Duck Typing wikipedia article可能是一个更好的介绍.跳过你不理解的东西.)所以子类的行为都不同 – 但是以一种“适合”你给它们的名字的方式.
顺便说一句,如果这是我要解决的问题,我可能不会为商店中的每种类型的服装都有子衣服 – 这意味着您需要编辑代码以便携带新产品.这种设计足以学习如何使用子类化,但这不是一个理想的用途. (相反,我只是将服装类型存放为服装类的成员.裤子,衬衫,鞋子,大猩猩,你都对待它们 – 一个名字,你有多少,你卖多少,你从供应商那里支付多少钱等)