从字符串中调用变量

时间:2017-03-09 17:52:35

标签: python string variables

我正在研究一个蟒蛇刽子手游戏并根据变量生活我的图形,所以当你有1条生命时,会出现相应的图片。我将我的图形放入定义中,并希望从中调用它们。到目前为止,这是我的代码:

if life== 1:
        graphics1()
 if life==2:
        graphics2()
 if life==3:
        graphics3()
 if life==4:
        graphics4()
 if life==5:
        graphics5()
 if life==6:
        graphics6()
 if life==7:
        graphics7()
 if life==8:
        graphics8()
 if life==9:
        graphics9()
 if life==10:
        graphics10()

等等,那么是否有一个命令允许我将其缩短为一行或两行?

2 个答案:

答案 0 :(得分:0)

我强烈反对,但这可以通过以下方式来实现:

globals()["graphics" + str(life)]()

然而,这绝对是一个更好的解决方案。假设每个graphics*()的内容彼此相似。

答案 1 :(得分:0)

好吧,多个if分支可以通过查找表表示为

lt = {"1":graphics1(), "2":graphics2()}

等等。 如果分支通过(并提供后备功能)

lt.get(life, graphics1())

如果要动态创建dict,请使用dict理解并使用 getattr 来获取该函数。 或者,如上所述,将通过“ith”参数的函数图形概括为它。