Поскольку имена fN, fP, fE, mN, mP, .... явно известны и устойчивы, а поскольку self в вашем определении функции выдает, вы хотите создать атрибутыэкземпляр со значениями, считанными в файле, и так как файл имеет формат CSV, я предлагаю сделать следующее:
import csv
class A:
def __init__(self):
self.fN = self.fP = self.fE = None
self.mN = self.mP = self.mE = None
self.a = self.c = self.s = None
self.zC = self.hP = self.cP = None
self.eN = self.c1N = self.c1G = None
self.c1B = self.c2N = self.c2G = None
self.c2B = self.c3N = self.c3G = None
self.c3B = None
inst1 = A()
with open('roro.txt','rb') as f:
rid = csv.reader(f,delimiter=':')
for row in rid:
inst1.__dict__[row[0]] = row[1]
print inst1.fP
print inst1.s
print inst1.c3B
Обратите внимание, что присвоение имени объекту с именем встроенной функции (то есть дляскажем, file ) - плохая практика, и что xreadlines () устарело.
.
Более того, каково ваше намерение, определив global fileDirectory
?
Оператор global x
указывает, что если создание объекта выполняется благодаря присвоению имени x в следующих строках объект с именем x должен рассматриваться как находящийся в модуле глобального уровня.В вашем коде нет присвоения fileDirectory , и это лучше, потому что объявление fileDirectory глобальным может вызвать непредвиденные ошибки.
Обратите внимание, что глобальный уровень является более высоким уровнем,не внешний уровень функции.Проверьте следующий код:
class A:
def __init__(self):
self.m = 0.00315879
N = 101
def f(self,x,y):
print 'in f : x==',x," y+10==",y
def g(a,b):
print 'in g : a==',a,' b==',b
global m
global N
m = a*b
N = 5000010000
print 'in g : m = a*b ==',m
print 'in g : N==',N
g(x+300,y+700)
print 'in f, outside g: m==',m
print 'in f, outside g: N==',N
u = A()
u.f(0,40)
print
print 'm at the global level==',m
print 'N at the global level==',N
print 'the instance attribute u.m==',u.m
print 'the class attribute u.N==',u.N
результат
in f : x== 0 y+10== 40
in g : a== 300 b== 740
in g : m = a*b == 222000
in g : N== 5000010000
in f, outside g: m== 222000
in f, outside g: N== 5000010000
m at the global level== 222000
N at the global level== 5000010000
the instance attribute u.m== 0.00315879
the class attribute u.N== 101