Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.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有点疑问 我有一段代码 screen.blit(badninja1,(badninja1px ,badninja1py)) screen.blit(badninja2,(badninja2px ,badninja2py)) screen.blit(badninja3,(badninja3px ,badninja3py)) 我知道它重复了3次,我想做一些重构 这是一段python代码 它所做的是在Badnija1px和Badnija1py等位置绘制Badnija1。 bandni

我对python有点疑问

我有一段代码

screen.blit(badninja1,(badninja1px ,badninja1py))
screen.blit(badninja2,(badninja2px ,badninja2py))
screen.blit(badninja3,(badninja3px ,badninja3py))
我知道它重复了3次,我想做一些重构

这是一段python代码 它所做的是在Badnija1px和Badnija1py等位置绘制Badnija1。 bandninja1、badninja1px、badninja1py和其他变量名

我想把这段代码放到for循环中

for x in range(1, 4):
    #add number 1, 2, 3 to the variable name.
我试着这样做,并意识到我可以在python中轻松组合字符串:

"Dec "+str(25)+"th".
然而,更改变量名有点棘手


谁能给我一个提示谢谢

解决方案是在变量名中不使用数字。改为使用列表:

badninja = [firstitem, seconditem, thirditem, ...]   

现在,您可以将
badnija[0]
传递给您的函数以指定第一项等。

您通常会将这些值保留在列表或字典中:

badninjas = [badninja1, badninja2, badninja3]
并使用
badnija
对象保留其位置等信息:

for ninja in badninjas:
    screen.blit(ninja, (ninja.px, ninja.py))

您可以使用
globals()
locals()
结果动态查找变量(两者都返回一个映射),但一般来说,您应该避免这种行为。这里当然不需要它。

不要显式调用变量,而是将它们放在列表中,然后迭代此变量:

my_list = [(badninja1, badninja1px ,badninja1py),
           (badninja2, badninja2px ,badninja2py),
           (badninja3, badninja3px ,badninja3py)]
for item in my_list:
    screen.blit(item[0], (item[1], item[2]))

(在任何语言中)弄乱变量名都不是一个好的做法:尝试不同的方法解决问题谢谢!我只有有限的时间让游戏正常运行。我知道这不是最好的做法。很抱歉