有没有一种方法可以在Python中生成带有迭代变量的语句块?

有没有一种方法可以在Python中生成带有迭代变量的语句块?,python,pygame,Python,Pygame,我正在用pygame编写一个小游戏,需要加载和处理一堆图像。每次我都必须将加载函数分配给一个变量,该变量后来用于在屏幕上显示图像,每次分配中的一些变量都会发生变化 one=pygame.image.load(path.join(img_dir,“one.png”)).convert()#加载图像 one=pygame.transform.scale(one,(100100))#将图像缩放到大小(100100) 一、设置颜色键(白色)#调用pygame函数 two=pygame.image.loa

我正在用pygame编写一个小游戏,需要加载和处理一堆图像。每次我都必须将加载函数分配给一个变量,该变量后来用于在屏幕上显示图像,每次分配中的一些变量都会发生变化

one=pygame.image.load(path.join(img_dir,“one.png”)).convert()#加载图像
one=pygame.transform.scale(one,(100100))#将图像缩放到大小(100100)
一、设置颜色键(白色)#调用pygame函数
two=pygame.image.load(path.join(img_dir,“two.png”)).convert()
二=pygame.transform.scale(二,(100100))
2.设置颜色键(白色)
稍后,我必须在每一帧调用pygame函数来显示图像

window.blit(一,(30,70))#在x=30,y=70的位置显示图像“一”
窗玻璃(两(30190))
我曾考虑编写一个函数,它在包含所需变量名和位置的列表上进行迭代,但我假设我仍然必须将此函数分配给我需要的每个变量(例如,请参见下文)

def加载和刻度(名称):
name=pygame.image.load(path.join(img_dir,f“{name}.png”)).convert()
name=pygame.transform.scale(name,(100100))
名称。设置颜色键(白色)
返回名称
一=负载和刻度(“一”)
但是有没有办法让它更简洁呢?从列表中获取名称并返回与某个函数相等的变量名的函数。 我不想每次都分配这个。

给定的代码-

def load_and_scale(name):
    name = pygame.image.load(path.join(img_dir, f"{name}.png")).convert()
    name = pygame.transform.scale(name, (100, 100))
    name.set_colorkey(WHITE)
    return name

one = load_and_scale(one)

window.blit(one, (30, 70))      # shows image 'one' at position x = 30, y = 70
window.blit(two, (30, 190))
想象-

loaded_images = []
for name, blit_args in image_names:
    loaded_images.append(load_and_scale(name), blit_args)

for loaded_image, blit_args in loaded_images:
    window.blit(loaded_image, blit_args)

您不需要为每个对象都使用实际的局部变量,而是将它们存储在一个集合中。

只做一件显而易见的事情有什么不对:返回值

def load_and_scale(name):
    img = pygame.image.load(path.join(img_dir, f"{name}.png")).convert()
    img = pygame.transform.scale(img, (100, 100))
    img.set_colorkey(WHITE)
    return img


one = load_and_scale("one")
two = load_and_scale("two")

load_和_scale返回不确定,已修复,但这显然是问题中的错误,而不是他们寻求帮助的问题。。。