对于我的检查命令,因为我不想这样做:
def examine(Decision):
if Decision == "examine sword":
print sword.text
elif Decision == "examine gold":
print gold.text
elif Decision == "examine cake":
print cake.text
...
Run Code Online (Sandbox Code Playgroud)
对于我游戏中的每个项目.
所以我想将Decision字符串的第二个单词转换为变量,以便我可以使用类似的东西secondwordvar.text.
我尝试使用eval(),但是当我在一个单词命令中拼写错误时,我总是会出错.
错误
IndexError: list index out of range
但它正在起作用.
现在我的代码是这样的:
def exam(Decision):
try:
examlist = shlex.split(Decision)
useditem = eval(examlist[1])
print useditem.text
except NameError:
print "This doesn't exist"
Run Code Online (Sandbox Code Playgroud)
有没有人有一个想法,另一种选择,我怎么能以一种简单的方式编写该功能?
我可能还应该包括完整的游戏.你可以在这里找到它:http: //pastebin.com/VVDSxQ0g