递归声明变量 - python

Jos*_*rot 0 python recursion python-2.7

通常我永远不想这样做,但在这种情况下,我觉得似乎别无选择.我正在pyqt中构建一个具有许多标签小部件的程序,除了几何上的几个位置之外,其中很多都是相同的.

我想自动声明它们而不必逐行声明它们占用了很多行.它看起来也很难看.

有没有办法说创建十个变量,如var1,var2,var3等,而不必逐行声明它们?

现在我的代码看起来像 -

self.folderheader1 = QtGui.QLabel(self.folders)
self.folderheader2 = QtGui.QLabel(self.folders)
self.folderheader3 = QtGui.QLabel(self.folders)
self.folderheader4 = QtGui.QLabel(self.folders)
...
Run Code Online (Sandbox Code Playgroud)

mgi*_*son 8

可以这样做setattr,但我不推荐它:

for i in range(1,5):
    setattr(self, 'folderheader%s' % i, QtGui.QLabel(self.folders))
Run Code Online (Sandbox Code Playgroud)

相反,我可以建议list吗?

self.folderheaders = [QtGui.Qlabel(self.folders) for _ in range(1, 5)]
Run Code Online (Sandbox Code Playgroud)

现在,而不是self.folderheaders1你有self.folderheaders[0]什么不是真的那么不同......