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)
你可以这样做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]什么不是真的那么不同......