在创建一个类对象时,遇到object() takes no parameters的错误

在学习测试类时遇到的问题:

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__是初始化函数本体!!!)

出现这个错误的原因应该是把初始化函数写错,导致类中没有对参数进行初始化,少了初始化函数,编辑器就不管你给我传的是什么东西,我都不处理了,大概是这样子。

牢记,牢记!


你可能感兴趣的:(python)