Я пытаюсь создать экземпляр класса из файла объектов:Создание экземпляров класса из файла в Python
MyCube,2,3,4
FancyCube,5,3,3
AngryCube,5,5,5
, где первая колонка это имя экземпляра.
class cube(object):
def __init__(self, X, Y, Z):
self.X = X
self.Y = Y
self.Z = Z
def filetest():
filename = 'CubeDB.txt'
ins = open(filename, 'r')
for line in ins:
name, X, Y, Z = line.rstrip('\n').split(',')
vars()[name] = cube(X, Y, Z)
filetest()
print MyCube.X
Я хакерство на это некоторое время, и выше, ближе реализация я могу найти, но я получаю эту ошибку:
File "classtest.py", line 21, in filetest
vars()[name] = cube(X, Y, Z)
TypeError: 'str' object is not callable
Любые мысли? Спасибо
Я думаю, что 'vars' устанавливается в строку где-то над' cube' –
Почему бы не разделить линию на части, чтобы увидеть, какой из двух вызовов функций является повышение? 'c = cube (X, Y, Z)', 'v = vars()' и 'v [name] = c'. Тогда, вместо того, чтобы мы должны _guess_, что пошло не так, вы будете знать. – abarnert
Прежде всего, это плохая идея использовать 'vars()', во-вторых, 'vars()' внутри функции не будет создавать глобальную переменную. –