Я почти ничего не знаю о 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);
Есть ли более короткий путь? это не слишком долго, но достаточно долго, чтобы быть подверженным ошибкам.
edit : или еще лучше, я хочу определить простой класс, который имеет два поля, objectFiles и sourceFiles, и если я вызову
object1.append(object2)
тогда object1 добавит поля objectFiles и sourceFiles объекта2 к своим собственным, поэтому я мог бы просто сделать:
buildinfo = BuildInfo([],[]);
buildinfo.append(f(...));
buildinfo.append(f(...));
buildinfo.append(f(...));