回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在尝试将字典选择传递到类函数中,以便进一步处理。但是当我尝试时,我得到一个错误,说我缺少一个参数。我知道我不需要包含self,所以我不明白为什么它不起作用。它应该做到:</p>
<ol>
<li>从接受用户输入的代码的其他部分接收choiceindex</li>
<li>使用choiceIndex从字典中进行选择</li>
<li>把字典的3部分传给Product类</li>
</ol>
<p>该项目是模拟咖啡机。引用了一些我尝试过但不起作用的东西。任何帮助或建议都将不胜感激</p>
<pre><code>class Product(object):
def __init__(self,name,price,recipe):
self.name = name
self.price = price
self.recipe = recipe
def getPrice(self):
return self.price
def make(self, name, price, recipe):
print(self.recipe)
#for item in recipe:
# print("dispensing", item)
class Selector(object):
def __init__(self):
#self.Product = Product()
self.cashBox = CashBox
self.product = []
#self.products.append(Product.
def select(self, choiceIndex):
recipes = {
1 : ["black","35","cup coffee water"],
#1 : ["black",35,"cup coffee water"],
#1 : self.Product.make("black",35,"cup coffee water"),
2 : ["white",35,["cup", "coffee", "creamer", "water"]],
3 : ["sweet",35,["cup", "coffee", "sugar", "water"]],
4 : ["white&sweet",35,["cup", "coffee", "sugar", "creamer", "water"]],
5 : ["bouillon",35,["cup bouillonPowder", "water"]]
}
if choiceIndex in range(1,len(recipes)+1):
self.choiceIndex = choiceIndex
self.recipe = recipes.get(choiceIndex)
print(self.recipe,"Great selection")
Product.make(*self.recipe)
else:
print("That selection does not exist")
</code></pre>
<p>发生错误:</p>
<pre><code>Exception has occurred: TypeError
make() missing 1 required positional argument: 'recipe'
File "C:\Users\Tanner Harmer\Desktop\Coffee2\CashBox.py", line 101, in select
Product.make(*self.recipe)
File "C:\Users\Tanner Harmer\Desktop\Coffee2\CashBox.py", line 41, in oneAction
Selector.select(self,int(words[1]))
File "C:\Users\Tanner Harmer\Desktop\Coffee2\CashBox.py", line 107, in main
while m.oneAction():
File "C:\Users\Tanner Harmer\Desktop\Coffee2\CashBox.py", line 113, in <module>
main()
</code></pre>