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