Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 5, 2012 15:55:16

Serbis
От:
Зарегистрирован: 2012-02-13
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Как правильно наследовать класс

Как правильно получить доступ к объекту наследуемого класса?

class infoLay(QtGui.QWidget):
   def __init__(self, parent=None):
     QtGui.QWidget.__init__(self, None)
     self.eanTable = QtGui.QTableWidget()
   
class eanLay(infoLay):
  def __init__(self, parent=None):
    QtGui.QWidget.__init__(self, None)
  def slot_delEan(self,):
    row = self.eanTable.correntRow()

На что получаю что row не может быть определена так как -
AttributeError: ‘eanLay’ object has no attribute ‘eanTable’



Офлайн

#2 Июнь 5, 2012 16:08:21

Serbis
От:
Зарегистрирован: 2012-02-13
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Как правильно наследовать класс

Сам же уже нашел свою ошибку - не вызывал конструктор класса родителя. Тогда встречный вопрос. Дело в том, что мне необходимо многократно поучать доступ к объектам класса InfoLay из других классов, но он так устроен, что его конструктор может быть вызван только один раз, повторный возов ведет к критическим последствиям. Как вообще можно определить экземпляр InfoLay глобально. При попытке просто прописать его в теле модуля:

iLay = infoLay()
class infoLay(QtGui.QWidget):
  def __init__(self, parent=None):
    QtGui.QWidget.__init__(self, None)

я получаю ту же ошибку NameError: name ‘infoLay’ is not defined



Офлайн

#3 Июнь 5, 2012 16:13:31

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Как правильно наследовать класс

На этот вопрос я вам уже отвечал здесь. Пусть конструктор класса infoLay всегда возвращает один и тот же единожды созданный объект.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version