我正在研究一个蟒蛇刽子手游戏并根据变量生活我的图形,所以当你有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()
等等,那么是否有一个命令允许我将其缩短为一行或两行?
答案 0 :(得分:0)
我强烈反对,但这可以通过以下方式来实现:
globals()["graphics" + str(life)]()
然而,这绝对是一个更好的解决方案。假设每个graphics*()
的内容彼此相似。
答案 1 :(得分:0)
好吧,多个if分支可以通过查找表表示为
lt = {"1":graphics1(), "2":graphics2()}
等等。 如果分支通过(并提供后备功能)
lt.get(life, graphics1())
如果要动态创建dict,请使用dict理解并使用 getattr 来获取该函数。 或者,如上所述,将通过“ith”参数的函数图形概括为它。