Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从字符串调用变量_Python_String_Variables - Fatal编程技术网

Python 从字符串调用变量

Python 从字符串调用变量,python,string,variables,Python,String,Variables,我正在开发一个python hangman游戏,我的图形基于一个变量lives,所以当你有1个lives时,相应的图片就会出现。我将我的图形放入定义中,并希望从中调用它们。以下是我目前的代码: if life== 1: graphics1() if life==2: graphics2() if life==3: graphics3() if life==4: graphics4() if life==5:

我正在开发一个python hangman游戏,我的图形基于一个变量lives,所以当你有1个lives时,相应的图片就会出现。我将我的图形放入定义中,并希望从中调用它们。以下是我目前的代码:

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()

诸如此类,有没有一个命令可以让我把它缩短为一行或两行呢?

我强烈反对这样做,但可以通过以下方式完成:

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

不过,肯定有更好的解决方案。假定每个
图形*()
的内容彼此相似。

那么,多个if分支可以通过查找表表示为

lt = {"1":graphics1(), "2":graphics2()}
等等。 通过if分支(并提供回退功能)

如果要动态创建dict,请使用dict理解并使用getattr获取函数。
或者,如上所述,概括传递“ith”参数的函数图形。

graphics 2
有多少不同?你不能制作一个以
life
为参数的
graphics()
函数吗?请参阅所选答案
lt.get(life, graphics1())