一个选项(ha!)将选项的结构存储在变量中。在
例如,(在您的脑海中)将“菜单”定义为包含以下值的子集的dict:“问题”-这是显示菜单时要问的问题-“选择B子功能”
“说明”-这是您选择进入此菜单的选项-例如,对于“选择B子选项”,这将是“B”-您选择在此处获得的答案。第一份菜单上没有这个。在
“子选项”-这是菜单的列表。在
“代码”-如果存在,而不是显示此菜单,运行此代码。在
你上面举的例子def function_for_A1():
print "You chose A1!"
menus={"question":"Choose function Options","answers":[
{"description":"A","question":"Choose A Subfunctions","answers":[
{"description":"A1","code":function_for_A1},
{"description":"A2","code":function_for_A2},
]},
{"description":"B","question":"Choose B Subfunctions","answers":[
{"description":"B1","code":function_for_A1},
{"description":"B2","question":"B2 sub-suboption","answers":[...]},
]},
}
一旦你有了这个结构,给定当前菜单,显示它是相当容易的-运行代码(如果存在的话),否则显示问题,并为每个答案显示一个数字和“描述”。一旦他们选择了一个号码,找到菜单,清洗,剥皮,重复。你可以让菜单函数递归,所以如果他们选择“0-back”,那么你就从当前函数返回。在
完成了!在