明明定义了question,报错name 'question' is not defined

我真的姓张 2020-11-29 07:16:35
survey1.py

class AnonymousSurvey():
"""收集匿名调查问卷的答案"""

def __init__(self,question):
"""存储一个问题,并为存储答案做准备"""
self.question=question
self.responses=[]

def show_question(self):
"""显示调查问卷"""
print(question)

def store_response(self,new_response):
"""存储单份调查答卷"""
self.responses.append(new_response)

def show_results(self):
"""显示收集到的所有答卷"""
print("Survey results:")
for response in responses:
print('- '+response)


language_survey1.py

from survey1 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("Language: ")
if response=='q':
break
my_survey.store_response(response)

# 显示调查结果
print("\nThank you to everyone who participated in the survey!")
my_survey.show_results()


报错结果

Traceback (most recent call last):
File "C:/Users/15004/AppData/Local/Programs/Python/Python38-32/language_survey1.py", line 8, in <module>
my_survey.show_question()
File "C:/Users/15004/AppData/Local/Programs/Python/Python38-32/survey1.py", line 11, in show_question
print(question)
NameError: name 'question' is not defined
...全文
1539 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
意_国风情 2022-08-14
  • 打赏
  • 举报
回复

同理,之后的遍历循环for也应该是self.responses

neo_niu 2021-10-05
  • 打赏
  • 举报
回复

hhh最近也在学这本书,居然看到了一模一样的问题

Quality_Of_Perfect 2020-12-07
  • 打赏
  • 举报
回复
是的,show_question中应该是self.question
DuskCrow_ 2020-11-29
  • 打赏
  • 举报
回复 2
def show_question(self): """显示调查问卷""" print(question) print的参数question在show_question中没有先赋值,在函数外也找不到question这个变量,当然就是没有定义了呀 是不是应该print(self.question)
宇来风满楼 2020-11-29
  • 打赏
  • 举报
回复
你的定义是局部的,那个函数里看不到question
xing_py 2022-07-31
  • 举报
回复
@宇来风满楼 为什么说这个定义是局部的呀?

37,741

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧