Python3.0类和OOP基础,使用UML模型?

2024-04-29 13:31:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试制作一个程序,在我创建的模块中练习我的课程知识和格式化/基本数学知识。其想法是创建一个Merchandise数据类(称为Merchandise.py),并在单独的文件中创建一个名为store_merch.py的可执行程序来测试它。我知道我应该按照基本的UML图来建模,比如:

Merchandise

__item

__quantity

__cost

__init__(item,quantity,cost)

set_item(item)

set_quantity(quantity)

set_cost(cost)

get_item()

get_quantity()

get_cost()

get_inventory_value()

__str__()

{cd4>{a方法将计算

编辑:对于我在这里要问的内容,似乎有些混乱,所以我在下面重点介绍了我要了解的核心概念:(注意,我试图强调使用getter/setters)。这里有两个程序商品.py它拥有所有的getter/setter,第二个程序向用户请求输入并运行商品.py模块

对于store_merch程序,我想:

为10个锤子创建一个Merchandise实例,每个锤子的成本为14.95美元。

为6条项链创建另一个Merchandise对象,每个价值799.99美元。

运行两个对象的__str__方法。

提示用户为hammer对象输入新的数量,然后使用setter方法更改此属性。

提示用户输入项链对象的新成本,然后使用setter方法更改此属性。

再次运行__str__方法来验证更改。

同时显示每个对象的库存值。

样本输出

锤子,10美元,14.95美元

项链,6美元799.99美元

输入硬件12的新数量

输入珠宝659的新成本

锤子,12美元,14.95美元

存货价值:179.40美元

项链,6美元,659.00美元

库存价值:$3954.00

到目前为止,我的两个项目如下:

^{pr2}$

目前它只重命名hammer实例及其属性并正确提示用户,打印锤子和项链的新价格/数量,但不是我想要的方式。我的一个朋友帮我指出了一些我做错了的事情,但老实说,对于如何创建更多实例并调用以前的实例,我有点不知所措,所有这些都是在添加每个实例的属性并显示结果的同时:

1。你没有为项链创建第二个对象。您重新分配了硬件对象的属性。你没有使用输入。 这个。。。储存_商品数量(十二) 应该是。。。储存_商品数量(第2项)

2。在输入新数量的锤子时,您忘记使用int()函数。

3。启动store_merch=的线路是另一个罪魁祸首。你忘了用商品。商品就像你刚开始的时候那样。但是无论如何,您不应该创建一个名为store_merch的新实例。您应该使用store_商品对象的setter来获取数量。从那里拿走!

感谢任何帮助!第一个问题在这里,所以我希望我遵守所有的规则之前张贴!!(:


Tags: 对象实例方法storepy程序数量属性
1条回答
网友
1楼 · 发布于 2024-04-29 13:31:42

我不太确定你的问题是什么,但我知道你朋友说的“你没有为项链创造第二个对象”是什么意思

您将store_商品作为商品对象启动,然后继续使用set_x(x)来更改其属性。在

相反,您应该通过初始化另一个变量来实例化对象的新实例,而不是更改原始变量的属性。这可以在第一次启动的同一时间完成,但使用不同的名称。在

store_merchandise = merchandise.Merchandise('hammer',10,14.95) //initiate the first object properties 'hammer',12,14.95 store_merchandise2 = merchandise.Merchandise('necklaces',6,799.99) //initiate the second object with properties 'necklaces',6,799.99

和13;
和13;

然后你可以像以前一样访问它们,当你需要它们时,分别调用它们。这样,您就有了一个商品对象的两个独立实例,而不是更改一个实例。在

相关问题 更多 >