Так что я пытаюсь есть файл, который имеет кучу объекта в нем, что выглядит следующим образом:Как создать класс Python из строки?
<class 'oPlayer.oPlayer'>,123,4,<class 'CommonObject.Wall'>,175,4,<class 'CommonObject.Wall'>,25,654,<class 'CommonObject.Wall'>,1,123,<class 'CommonObject.Wall'>,55,87
(никаких новых строк для целей расщепления)
Файл содержит имя объекта, х, и y координаты. (Основная информация) Но я не уверен на 100%, как создавать объекты из файла. Вот что у меня есть:
def loadRoom(self, fname):
# Get the list of stuff
openFile = open(fname, "r")
data = openFile.read().split(",")
openFile.close()
# Loop through the list to assign said stuff
for i in range(len(data)/3):
# Create the object at the position
newObject = type(data[i * 3])
self.instances.append(newObject(int(data[i * 3 + 1]), int(data[i * 3 + 2])))
Объекты в файле все принимают два аргумента: x и y. Поэтому я также смущен тем, как это будет работать. То, что я сделал, это захватить список со всеми разделенными строками (что я отобразил, оно получилось правильным. Нет \ n), затем я просматриваю список (сортировку), чтобы установить все данные. Я предположил, что type
вернет объект, но это не так.
Любая помощь с указанной темой очень ценится.
Где сделал это Файл появился? Где определяются классы? Что тут происходит?! Вы просто ищете [pickle] (https://docs.python.org/2/library/pickle.html)? – tzaman
попробуйте встроенную функцию типа, см. Мой ответ здесь http://stackoverflow.com/a/8576049/29489 – number5
'type' не возвращает объект, потому что у вас нет объектов, только строк. Вы не можете магически восстановить объект со всеми его связанными свойствами и методами из строки, которая говорит ''. –
MattDMo