我寫一個名爲 「袋」 一個簡單的Python類:如何在Python中創建「可選」參數?
class Bag:
def __init__(self, items=None):
if self.items == None:
self.items = defaultdict()
else:
temp_dict = defaultdict()
for key in self.items:
temp_dict[key] += 1
self.items = temp_dict
變量項目發生在對象的列表,如:
['d','a','b','d','c','b','d']
從那裏,「高清__init __(自,項=無)」將:
- 初始化項作爲空defaultdict,如果沒有被傳遞到項目,或
- 初始化傳入的參數,如果對象的列表被傳遞到項目。
例如,這應該工作:
b = Bag()
缺少一個參數的要細,爲項被設置,默認情況下,到_None。
然而,這總是會引發異常(從檢查錯誤的腳本):
*Error: b = Bag() raised exception AttributeError: 'Bag' object has no attribute 'items'
我要初始化袋()沒有把路過的一個參數爲項目。
希望一切都清楚,告訴我如果不是。
任何想法或任何代碼錯誤?
我認爲你可以做'def __init __(self,items = None) :'當你想要設置時,它仍然允許'items'被設置 – davedwards
@downshift我做了你所建議的改變,但它仍然給我同樣的例外。 –
我的道歉,把'self.items = items'作爲def __init __後面的第一行__(..' – davedwards