在學習測試類時遇到的問題:
class AnonymousSurvey():
"""收集匿名調查問卷的答案"""
def __ini__(self,question):
"""存儲一個問題,併爲存儲答案做準備"""
self.question = question
self.responses = []
def show_question(self):
"""顯示調查問卷"""
print(self.question)
def store_response(self,new_response):
"""存儲單份調查問卷"""
self.responses.append(new_response)
def show_results(self):
print("Survey result:\n")
for response in self.responses:
print(response)
定義了一個類,然後編寫一個可以使用它的程序:
from survey import AnonymousSurvey
#定義一個問題
question = "What's your favorite language?"
my_survey = AnonymousSurvey(question)
#顯示問題並存答案
my_survey.show_question()
print("enter 'q' at any time to quit\n")
while True:
response = input("Language:\n")
if response == 'q':
break
my_survey.store_response(response)
print("Thank you to your participated!")
my_survey.show_results()
運行,出現TypeError: object() takes no parameters
剛開始我也很奇怪,爲什麼不能傳參創建一個實例對象呢?沒有參數我怎麼定義程序裏的問題呢?(抓狂)
仔細地檢查一遍程序,發現在初始化函數__init__這裏我竟然寫成了__ini__,omg.(__init__是初始化函數本體!!!)
出現這個錯誤的原因應該是把初始化函數寫錯,導致類中沒有對參數進行初始化,少了初始化函數,編輯器就不管你給我傳的是什麼東西,我都不處理了,大概是這樣子。
牢記,牢記!