我对 Python 几乎一无所知,而且我正在使用 scons。(如果你正在阅读这篇文章并且了解 Python 但不了解 scons,那么你可能会帮助我!)
有人可以帮我解释一下我如何拥有一个包含两个列表的变量吗?我不确定语法。这是正确的吗?
buildinfo = // how do you initialize a variable that has fields?
buildinfo.objectFiles = []; // list of the object files
buildinfo.sourceFiles = []; // list of the source files
如果我有一个函数 f() 返回此结构的变量,那么将 f() 的返回值附加到两个列表的最短方法是什么?(真的 f() 是 Sconscript() 但没关系。)
// call f() several times and append the results onto buildinfo
buildinfo_sub = f(...);
buildinfo.objectFiles.append(buildinfo_sub.objectFiles);
buildinfo.sourceFiles.append(buildinfo_sub.sourceFiles);
buildinfo_sub = f(...);
buildinfo.objectFiles.append(buildinfo_sub.objectFiles);
buildinfo.sourceFiles.append(buildinfo_sub.sourceFiles);
buildinfo_sub = f(...);
buildinfo.objectFiles.append(buildinfo_sub.objectFiles);
buildinfo.sourceFiles.append(buildinfo_sub.sourceFiles);
有没有更短的方法?这不是太长,但足够长,容易出错。
编辑:或者更好的是,我想定义一个简单的类,它有两个字段,objectFiles 和 sourceFiles,如果我调用
object1.append(object2)
然后 object1 会将 object2 的 objectFiles 和 sourceFiles 字段附加到它自己的字段上,所以我可以这样做:
buildinfo = BuildInfo([],[]);
buildinfo.append(f(...));
buildinfo.append(f(...));
buildinfo.append(f(...));