takes 0 positional arguments but 1 was given
python从入门到实践
跟着书里的代码做测试类的时候,写到调用程序的代码块
from survey import AnonymousSurvey
#定义一个问题,并创建一个表示调查的AnonymousSurvey对象
question = “What language did you first learn to speak?”
my_survey = AnonymousSurvey(question)
#显示问题并存储答案
my_survey.show_question()
print(“Enter ‘q’ at any time to quit.\n”)
while True:
response = input("Languages: ")
if response == ‘q’:
break
else:
my_survey.store_response(response)
#显示调查结果
print(“\nThank you to everyone who participated in the survey!”)
my_survey.show_results()
执行的时候提示takes 0 positional arguments but 1 was given
说AnonymousSurvey(question)这个地方没有参数,提供了一个question
后来发现原来是survey.py里面:
class AnonymousSurvey():
“”“收集匿名调查问题的答案”“”
def init(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 results: ")
for response in self.responses:
print("- " + response)
class写成了def,类变成函数了。