在学习测试类时遇到的问题:
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__是初始化函数本体!!!)
出现这个错误的原因应该是把初始化函数写错,导致类中没有对参数进行初始化,少了初始化函数,编辑器就不管你给我传的是什么东西,我都不处理了,大概是这样子。
牢记,牢记!