У меня есть класс, который выглядит так.Как добавить объекты в класс с циклом в Python?
class CharInStageList(object):
def __init__(self, charid, charname) :
self.charid = charid
self.charname = charname
в этот класс я бы хотел добавить списки, которые у меня есть.
я знаю, как сделать это Normall путь
charOne = CharInStageList(1,'Tim')
charTwo = CharInStageList(2,'Struppi')
то будет не проблема, что я на самом деле нужно сделать, это добавить их с помощью петли.
я получаю мои данные в этой форме
((1,'Tim'),(4,'Struppi'))
или
((1,'Tim'),(4,'Struppi'),(5,'Nami'),(6,'Luffy'))
количество charachters я имею в сцене всегда находится другая. то, что я представлял бы цикл, как этот
charlist = ((1,'Tim'),(4,'Struppi'))
for char in charlist
objname = CharInStageList(char[0],char[1])
что-то вроде этого
Я хочу ObjName изменить сам по себе для каждого объекта я добавить к классу.
Как я могу получить этот эффект. я могу использовать только питон 2.6.6 для этого, так как это майя 2013 питон
Edit:
Thx @ шилы лучей @chepner @theodox я посмотрел в Dicts немного больше, и это в значительной степени то, что мне нужно
Я использую модифицированную версию метода @chepner.
object_dict = dict((y, CharInStageList(x,y)) for x,y in data)
работает как шарм
Мой testcode выглядит как этот
import maya.cmds as cmds
dicttest = {}
def getdata():
global dicttest
data = ((1,'Tim'),(4,'Struppi'),(5,'Nami'),(6,'Luffy'))
dicttest = dict((y,(x,y)) for x,y in data)
getdata()
def printtest() :
for char in dicttest:
print dicttest[char]
printtest()
dicttest.clear()
я хотел бы, чтобы комментировать ваши ответы с кодом exsamples, но я не могу получить, чтобы работать там.
Это немного неловко, но я пытаюсь прокомментировать какой-то код, например, 30 раз, и я уверен, что я правильно сделал пробел, так как он работает с вопросом. но это не получится правильно. – masamoto
Код сложный в комментариях. Вы можете отредактировать свой вопрос, чтобы уточнить, что вы хотите. Однако я предполагаю, что вы хотите, чтобы «CharInStateList» выступал в качестве контейнера. Я попробую обновить свой ответ с тем, что, я думаю, вы пытаетесь спросить. – chepner