我正在从一本书中学习Python,并为自己编写了一个长时间的测验/类型的游戏,最后打印出摘要。但是,摘要会根据用户所做的选择来查找不总是存在的属性。在
我把它抽象成一个基本的例子来说明我要做什么。本质上,我只想运行一个属性错误检查,对于每个没有属性的变量,创建一个默认值为N/a的属性
在下面的示例中,我希望它打印:
名字:乔
姓:布洛格斯
史密斯试验:不适用
测试4:不适用
我创建了一个名为CodeCleaner的类,我打算用它来设置N/a值,但却被卡住了!在class QuestionSet(object):
next_set = 'first_set'
class ClaimEngine(QuestionSet):
def current_set(self):
last_set = "blank"
while_count = int(0)
quizset = Sets.subsets
ParentSet = QuestionSet()
while ParentSet.next_set != last_set and int(while_count)<50:
quizset[ParentSet.next_set].questioning()
while_count = while_count+1
class FirstSet(QuestionSet):
def questioning(self):
self.value1 = raw_input("Forename:\n")
QuestionSet.next_set = "second_set"
class SecondSet(QuestionSet):
def questioning(self):
self.value2 = raw_input("Surname:\n")
if self.value2 == "Smith":
self.value3 = "He's a Smith!"
self.value4 = "Test val 4"
QuestionSet.next_set = "summary"
else:
QuestionSet.next_set = "summary"
class CodeCleaner(QuestionSet):
def questioning(self):
mapping = Sets()
sets = mapping.subsets
variable_list = {
[sets['first_set']].value1,
[sets['second_set']].value2,
[sets['second_set']].value3,
[sets['second_set']].value4
}
#while key_no < 4:
# try:
# print variable_list
# except AttributeError:
class Summary(QuestionSet):
def questioning(self):
mapping = Sets()
sets = mapping.subsets
print "Forename:",sets['first_set'].value1
print "Surname:",sets['second_set'].value2
print "Smith Test:",sets['second_set'].value3
print "Test 4:",sets['second_set'].value4
exit(0)
class Sets(object):
subsets = {
'first_set': FirstSet(),
'second_set': SecondSet(),
'summary': Summary()
}
run = ClaimEngine()
run.current_set()
我很懒得问这个问题,不过,我已经为这个问题纠结了几天了!任何帮助都将不胜感激。在