這是操作的指令:如何創建__init__函數?
1.定義一個模塊中名爲袋類名爲bag.py
2.Define一個INIT方法具有一個參數,即initalize袋值的迭代。書寫袋()構成一個空袋子。書包(['d','a','b','d','c','b','d'])構成一個'a',兩個'b','c' ,還有三個'd'。在袋類對象應該只存儲字典上述規定的:它不應該存儲/處理任何其他自變量
from collections import defaultdict
from goody import type_as_str
from test.test_string import Bag
class Bag:
def __init__(self, i):
if len(i) == 0:
self.bag = []
for x in i:
self.bag.append(x)
if __name__ == '__main__':
#driver tests
import driver
driver.default_file_name = 'bsc1.txt'
# driver.default_show_exception= True
# driver.default_show_exception_message= True
# driver.default_show_traceback= True
driver.driver()
這是我得到的錯誤:
7 # Test init, repr, and str
8 *Error: b = Bag() raised exception TypeError: __init__() missing 1 required positional argument: 'i'
9 *Error: repr(b) in ['Bag()','Bag([])'] raised exception NameError: name 'b' is not defined
10 *Error: str(b) raised exception NameError: name 'b' is not defined
11 *Error: b = Bag(['d','a','b','d','c','b','d']) raised exception AttributeError: 'Bag' object has no attribute 'bag'
12 *Error: all((repr(b).count('\''+v+'\'')==c for v,c in dict(a=1,b=2,c=1,d=3).items())) raised exception NameError: name 'b' is not defined
13 *Error: all((v+'['+str(c)+']' in str(b) for v,c in dict(a=1,b=2,c=1,d=3).items())) raised exception NameError: name 'b' is not defined
輸入是:
# Test init, repr, and str
c-->b = Bag()
e-->repr(b) in ['Bag()','Bag([])']-->True
e-->str(b)-->Bag()
c-->b = Bag(['d','a','b','d','c','b','d'])
e-->all((repr(b).count('\''+v+'\'')==c for v,c in dict(a=1,b=2,c=1,d=3).items()))-->True
e-->all((v+'['+str(c)+']' in str(b) for v,c in dict(a=1,b=2,c=1,d=3).items()))-->True
我不知道如何使初始化功能。因爲第一個輸入調用b = Bag(),所以總是會引發錯誤:b = Bag()引發異常TypeError:init()缺少1個需要的位置參數。任何人都可以告訴我如何解決它?
謝謝,它工作正常。 – jiahuiding