Python 从循环更改多个屏幕的kivy小部件属性

Python 从循环更改多个屏幕的kivy小部件属性,python,kivy,kivy-language,Python,Kivy,Kivy Language,我的应用程序中有一堆屏幕,它们都有相同的图标,我总是想一起更改。因此,我目前对其进行了硬编码,每次我添加一个新屏幕时,我都必须添加一行新的内容,而且越来越麻烦: self.tcs_screen.ids.statusicon.source = "/imgs/..." self.eclss_screen.ids.statusicon.source = "/imgs/..." self.gnc_screen.ids.statusicon.source = "/imgs/..." ... 是否可以在屏

我的应用程序中有一堆屏幕,它们都有相同的图标,我总是想一起更改。因此,我目前对其进行了硬编码,每次我添加一个新屏幕时,我都必须添加一行新的内容,而且越来越麻烦:

self.tcs_screen.ids.statusicon.source = "/imgs/..."
self.eclss_screen.ids.statusicon.source = "/imgs/..."
self.gnc_screen.ids.statusicon.source = "/imgs/..."
...
是否可以在屏幕列表上循环执行此操作?我一直在尝试以下操作,但没有成功。如何将变量插入到属性赋值中

ScreenList = ['tcs_screen', 'eclss_screen', 'gnc_screen']
for x in xrange(len(ScreenList)):
        self.ScreenList[x].ids.statusicon.source = "/imgs/..."
还是有更好的方法来实现这一点

谢谢

您必须使用getattr才能使用名称获取属性

screen_list = ['tcs_screen', 'eclss_screen', 'gnc_screen']

for e in screen_list:
    getattr(self, e).ids.statusicon.source = "/imgs/..."

完美的谢谢