Найти - Пользователи
Полная версия: Как обратиться к объекту в цикле
Начало » Python для новичков » Как обратиться к объекту в цикле
1
LighFusion
Не могу понять как решить такую - задачу, имеются объекты
(1) * longName : <None>
(2) * longName : objects\dress09_body.dds
(3) * longName : objects\dress07_head.dds
Такого типа, они заполняются в форму daeImage.initFrom = texture.longName(Тут идет обращение к самим объектам, texture Это chunk(данные из файла) )
daeImage Это
daeImage = self.colladaDocument.imagesLibrary.FindObject(tex_name)
daeImage = collada.DaeImage()
daeImage.id = daeImage.name = tex_name

Проблема в том что они заполняются не из одного массива, а по мере обработки данных файла, и таким образом получается что в форму daeImage, попадает Null(None), поскольку в первом элементе данных файла - пусто(None), но данные есть во втором, и я не как не могу понять как записать эти данные в отдельную переменную и поместить в форму, чтобы в итоге передавалось 3 элемента и первый не был пуст.
Shaman
Мало что понял из сказанного, но спинной мозг подсказывает о передаче данных только когда будут готовы все они.
LighFusion
Shaman
Мало что понял из сказанного, но спинной мозг подсказывает о передаче данных только когда будут готовы все они.
Да я сам практически ничего не понимаю в этом адовом языке,
		def ImportMaterials(sedf):
		bindMaterials = []
		daeBindMaterial = collada.DaeFxBindMaterial()
		for mtlChunk in sedf.IterChunk(CgfFormat.MtlChunk):
			if mtlChunk.name.find("nouvmap") != -1:
				continue
		instance = collada.DaeFxMaterialInstance()
		daeMaterial = sedf.colladaDocument.materialsLibrary.FindObject(GetValidID(mtlChunk.name))
		if daeMaterial is None:
			daeMaterial = sedf.ImportMaterial(mtlChunk)
		instance.object = daeMaterial
		daeBindMaterial.techniqueCommon.iMaterials.append(instance)
		# now we have to add this bindmaterial to the intance of this geometry
		bindMaterials.append(daeBindMaterial)
		return bindMaterials
	
На сколько я понял сам цикл подставления данных, описан тут
for mtlChunk in sedf.IterChunk(CgfFormat.MtlChunk):
Но что с этим делать я не понимаю, вот он получает через этот цикл - первую строчку <None> из самого файла, и записывает ее как None - здесь http://pastebin.com/6yhn964X, через mtlChunk.texD, причем этот texD в полном виде выглядит вот так http://pastebin.com/j8Lqz7pR , и далее уже обращаясь к texD.LongName, выводиться значение именно этого элемента(LongName), после чего добавляется в форму daeImage.initFrom как None http://pastebin.com/5meRidmG , вся проблема в том как обратиться ко второму объекту(сразу), ведь его обработка еще не началась, создать еще 1 for ?
Извиняюсь если я тупо пишу, у меня уже мозги плавятся от этой гадости….
Shaman
LighFusion
вся проблема в том как обратиться ко второму объекту(сразу), ведь его обработка еще не началась, создать еще 1 for ?
Скорее всего через
list(sedf.IterChunk(CgfFormat.MtlChunk))[1]
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB