我正在处理一个蟒蛇挂人游戏,并有我的图形基于一个变量,生命,所以当你有一个生命,相应的图片出现。我把我的图形放入定义中,并想从定义中调用它们。到目前为止,这是我的代码:
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()等等,是否有一条命令可以让我把它缩短到一两行?
发布于 2017-03-09 18:00:16
我极力劝阻它,但它可以通过这样做来实现:
globals()["graphics" + str(life)]()然而,肯定有一个更好的解决方案。假设每个graphics*()的内容彼此相似。
发布于 2017-03-09 18:06:02
多个if分支可以通过查找表表示为
lt = {"1":graphics1(), "2":graphics2()}诸若此类。Accès to if分支机构通过(并提供一个后备功能)
lt.get(life, graphics1())如果您想动态创建dict,请使用dict理解并使用getattr获取函数。或者,如前所述,对传递"ith“参数的函数图形进行概括。
https://stackoverflow.com/questions/42702226
复制相似问题