我试图在Python3.6上制作一个商店程序,但是我的代码不起作用。我做了很多修改,现在我遇到了更多的内部编码问题,比如让菜单在循环中运行,直到客户退出程序,以及在列表中创建包含各个项的所有信息的列表。代码在这里可能没有正确缩进,但这更多的是一个复制和粘贴错误。在
代码如下:
class RetailItem:
def __init__(self):
self.price = price
self.units = units
self.description = description
class CashRegister:
def __init__(RetailItem, self):
self.totalprice=0
self.cart=[]
self.items=[]
duck = RetailItem
duck.description = "Large plush duck"
duck.units = 3
duck.price = 6.99
porcupine = RetailItem
porcupine.description = "Pink plush porcupine"
porcupine.units = 5
porcupine.price = 9.99
bunny = RetailItem
bunny.description = "small white plush bunny"
bunny.units = 7
bunny.price = 4.99
self.items=[duck,bunny,porcupine]
print("Welcome to The Toy Store.\n Selection:\n 1.Duck \n 2.Bunny \n 3.Porcupine")
def menu(self):
item = int(input("What would you like to select? "))
item=+1
item = self.items[item]
return item
def purchase(RetailItem):
self.items = self.items.append(item)
self.totalprice = totalprice.append(item.price)
item.units=item.units-1
self.cart= self.items.append(item)
print("You have added"+(item)+"to your cart")
def get_total(self):
return("Your total is", self.totalprice)
def show_item(RetailItem):
return(description(RetailItem), units(RetailItem), price(RetailItem))
def clear_register(self):
self.totalprice = []
self.items = []
def main():
^{pr2}$
似乎
def menu(self)
不在任何类中,因此它不应该有self
参数。拆下它,它应该可以工作了。或者将menu
放入一个类中。在self
参数是为类方法保留的。更多信息here编辑:实际上,如果我理解您的代码,您的
menu(self)
属于CashRegister
类。如果是这样,只需缩进整个menu(self)
块。在如何处理
menu not defined
:关键字
self
用于类内的方法。menu
是一个 方法在顶层。在只需缩进
menu
,这样它就变成了CashRegister
类的方法。您的程序还有其他问题。
您忘记缩进豪猪和兔子对象,所以它将位于
CashRegister
的__init__
您用
choice
输入无效。您的
CashRegister C1
未正确启动。您需要将其初始化为对象:C1 = CashRegister(*some RetailObject*
)而不是C1 = CashRegister
Bunny.unitsininv
:unitsininv
不作为RetailItem
字段存在。CashRegister
的total
应该是一个列表。purchase
,get_total
,show_items
,clear_register
也应该是CashRegister
和self
的方法。init有一个打字错误:您键入了
__int__
,而不是下面是更新的代码,您可以花时间阅读以了解设置收银机所需的内容,并且您只需使用pythonshell对收银机进行购买。在
相关问题 更多 >
编程相关推荐