Форум сайта python.su
0
Имеется два класса - loa(родительский) и test(дочерний). Из класса test нужно получить атрибут класса loa. Он определен в конструкторе как l1. Но по понятным причинам я его получить не могу так как его реально нет, он пока еще по факту не объявлен, хотя в конструкторе и прописан. И попытка сслаться на него из прототипа test приводе к ошибке.
class loa:
def __init__(self):
self.l1 = ''
self.l2 = ''
def arg_get(self):
args = '-h, -o:, -s:'
try:
opts, args = getopt.getopt(sys.argv[1:], args, ["help"])
except getopt.error, msg:
print msg
print "For help use --help"
sys.exit(2)
for o, a in opts:
if o in ("-h", "--help"):
print 'Helpaaaaaaaaaaaaaaaaaaaaaaaa'
elif o in("-o"):
self.l1=a
elif o in("-s"):
self.l2=a
else:
assert False, "unhandled option"
def arg_proc(self):
if self.l1:
print self.l1
if self.l2:
print self.l2
class test(loa):
def __init__(self):
print self.l1 #На этой строке и есть ошибка.
Офлайн
25
А __init__ для loa кто делать будет??
Офлайн
253
Перефразируя выше сказанное. В питоне конструктор родителей всегда надо вызывать явно. Сам он не вызовется. Плюс такого подхода - больший контроль над процессом конструирования.
Офлайн