好吧,所以我對python非常陌生,我在SF的社區中心爲它做了一個免費的課程,所以這是「家庭作業」,但它不適用於請明確說明學校。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是價值)......我迷失在此,不能繼續下去,直到我明白了。
btw我不能改變x = CoinPurse(宿舍= 5,便士= 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)
tbh codereview.stackexchange.com可能會更好,因爲可以改進代碼的很多部分。你不會真的使用setitem(據我所知)。 – 2013-02-21 20:58:10