好的,所以我对 python 很陌生,我正在旧金山的一个社区中心上免费课程,所以是的,这是“家庭作业”,但它不适合学校,所以请明确。
好的,所以我们正在进行运算符重载,但我有一个与类中的参数相关的问题,这让我很困惑。我可能完全偏离了我的想法,所以任何帮助都会很棒。
到目前为止,这是我的课程代码
class CoinPurse(object):
def __init__(self, quarters=0, dimes=0, nickels=0, pennies=0):
self.purse ={'quarters': 0, 'dimes': 0, 'nickels': 0, 'pennies': 0}
def __setitem__(self, quarters, dimes, nickels, pennies):
self.purse ={'quarters': quarters, 'dimes': dimes, 'nickels': nickels, 'pennies': pennies}
def amount(self):
""" Return the amount of money as a floating point value """
self.purseamount = 0
self.purseamount = self.purseamount + ((self.purse['quarters']) * 25)
self.purseamount = self.purseamount + ((self.purse['dimes']) * 10)
self.purseamount = self.purseamount + ((self.purse['nickels']) * 5)
self.purseamount = self.purseamount + self.purse['pennies']
self.purseamount = float(self.purseamount) / 100
return float(self.purseamount)
def quarters(self):
""" Returns the number of quarters as an integer """
return int(self.purse['quarters'])
def dimes(self):
""" Returns the number of quarters as an integer """
return int(self.purse['dimes'])
def nickels(self):
""" Returns the number of quarters as an integer """
return int(self.purse['nickels'])
def pennies(self):
""" Returns the number of quarters as an integer """
return int(self.purse['pennies'])
好的,这是一个使用该类的测试,稍后我必须对它做更多的事情,但现在我只想确保基础工作正常
x = CoinPurse(quarters=5, pennies=100)
print x.amount()
print x.quarters()
print x.pennies()
现在我的问题是这样的,我知道我没有正确使用setitem我将如何传递参数(四分之一 = 5,便士 = 100)以便可以将它们添加到字典对象中。我需要同时传递键和值(四分之一是键,5 是值)......我迷失了这一点,在我弄清楚之前无法继续。
顺便说一句,我无法更改必须以这种方式使用的 x = CoinPurse(quarters=5, pennies=100)。
**根据建议编辑代码
class CoinPurse(object):
def __init__(self, **kwargs):
self.pquarters = kwargs.get('quarters', 0)
self.pdimes = kwargs.get('dimes', 0)
self.pnickels = kwargs.get('nickels', 0)
self.ppennies = kwargs.get('pennies', 0)
def amount(self):
""" Return the amount of money as a floating point value """
self.purseamount = 0
self.purseamount = self.purseamount + (self.pquarters * 25)
self.purseamount = self.purseamount + (self.pdimes * 10)
self.purseamount = self.purseamount + (self.pnickels * 5)
self.purseamount = self.purseamount + self.ppennies
self.purseamount = float(self.purseamount) / 100
return float(self.purseamount)
def quarters(self):
""" Returns the number of quarters as an integer """
return int(self.pquarters)
def dimes(self):
""" Returns the number of quarters as an integer """
return int(self.pdimes)
def nickels(self):
""" Returns the number of quarters as an integer """
return int(self.pnickels)
def pennies(self):
""" Returns the number of quarters as an integer """
return int(self.ppennies)