函数调用中的Python循环列表

时间:2018-09-24 11:26:29

标签: python-3.x for-loop

这是我关于StackOverflow的第一个问题。我一直只是在谷歌搜索中找到想要的东西,但是这次我被困住了,无法解决。

我是一名使用python的初学者,仍然学习很多。

我想用一个小的代码来更改用户界面中的dateEdit框以设置det当前日期时间。 代码看起来像这样。

self.dateEdit_2.setDateTime(QtCore.QDateTime.currentDateTime())

现在,我想将每个dateEdit框都更改为相同的值,从2开始到29,而不必键入每一行。

我试图用填充列表制作一个for循环。 我得到它打印出我想要的东西,但是我如何获得“ set_date_numb”作为满足我想要的属性。

希望您能理解,谢谢。

    dateTimeList = ['2','3','4','5','6','7','8','9',
    '10','11','12','13','14','15','16','17','18','19','20',
    '21','22','23','24','25','26','27','28','29']
    indexval = 0
    for i in range(len(dateTimeList)):
        date_numb = (dateTimeList[indexval])
        set_date_numb ='self.dateEdit_{}.setDateTime(QtCore.QDateTime.currentDateTime())'.format(date_numb)
        print(set_date_numb)
        indexval += 1

1 个答案:

答案 0 :(得分:2)

您可以使用getattr(),请参阅文档here。由于您所追求的功能是您实例的成员,因此您可以使用名称作为字符串来获取它们(我认为这是您面临的主要问题):

dateTimeList = [str(x) for x in range(2,30)]

for dt in dateTimeList:
    name = "dateEdit_{}".format(dt)
    currentDateEdit = getattr(self, name)
    currentDateEdit.setDateTime(QtCore.QDateTime.currentDateTime())