Уведомления

Группа в Telegram: @pythonsu

#1 Март 15, 2009 12:13:33

Ockonal
От:
Зарегистрирован: 2009-03-05
Сообщения: 85
Репутация: +  0  -
Профиль   Отправить e-mail  

Получение parent-object

Приветствие, не пинайте ногами, вопрос появился =) Есть модуль: application.py
В нем определен класс Application. Там реализовал статистическую ф-цию, для получения объекта класса

@staticmethod
def returnParent():
return self
В другом модуле делаю:
from application import *
...
temp = Application.returnParent()
NameError: global name ‘returnParent’ is not defined
Что я делаю не так?



Офлайн

#2 Март 15, 2009 12:32:35

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Получение parent-object

Ockonal
NameError: global name ‘returnParent’ is not defined
Что я делаю не так?
А точно ‘returnParent’ is not defined? не self? ;)



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#3 Март 15, 2009 12:44:52

Ockonal
От:
Зарегистрирован: 2009-03-05
Сообщения: 85
Репутация: +  0  -
Профиль   Отправить e-mail  

Получение parent-object

Сорри, не понял.
———–
Как мне можно получить ссылку на тот класс?
Мне нужно использовать её в качестве ссылки на parent-class
———–
Может я что-то не понимаю. В с++ я делал так:
return this;
Чтобы получить ссылку на объект класса. Не знаю, есть ли такая возможность в Питоне. Подскажите.



Отредактировано (Март 15, 2009 13:06:19)

Офлайн

#4 Март 15, 2009 13:59:59

Ockonal
От:
Зарегистрирован: 2009-03-05
Сообщения: 85
Репутация: +  0  -
Профиль   Отправить e-mail  

Получение parent-object

Пытаюсь сделать по-другому: сгенерировать мой сигнал, по которому уже в классе делать то, что надо. Но опять же проблемка…
В каком-то классе вызываю:

self.emit(SIGNAL("signalMoveChildren()"))
Обработчик, который находится в нужном классе (Application):
    def slotMoveChildren(self):
print 'emited signalMoveChildren'
# Working...
В мейн-функции связываю:
    myapp = Application()
QtCore.QObject.connect(myapp, SIGNAL("signalMoveChildren()"), myapp.slotMoveChildren)
Сигнал отсылается, но я его не получаю. Можете подсказать причину?



Офлайн

#5 Март 15, 2009 15:05:22

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Получение parent-object

Если я правильно понял что вам нужно:

>>> class A: pass
...
>>> class B: pass
...
>>> class C(A,B): pass
...
>>> C
<class __main__.C at 0x009F4A50>
>>> C.__bases__
(<class __main__.A at 0x009F4810>, <class __main__.B at 0x009F48A0>)
Но что-то мне подозрительна ваша архитектура… зачем вам знать парента вне класса?

В питоне self - ссылка на экземпляр класса причем она передается в метод явно
def method(self): pass
а в статическом методе и вовсе не доступна

ЗЫ: Второе ваше сообщение прочитал уже после того как ответил. Извините, с PyQt не работал, кто-нибудь ответит, но ищите вы похоже не там



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Отредактировано (Март 15, 2009 15:11:45)

Офлайн

#6 Март 15, 2009 15:08:31

Ockonal
От:
Зарегистрирован: 2009-03-05
Сообщения: 85
Репутация: +  0  -
Профиль   Отправить e-mail  

Получение parent-object

Но что-то мне подозрительна ваша архитектура…
В чем ваши подозрения?
———————–
Ок, как я могу передать ссылку на класс другому классу? В нужный момент.



Отредактировано (Март 15, 2009 15:09:25)

Офлайн

#7 Март 15, 2009 15:21:58

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Получение parent-object

Навскидку(как сказал уже с PyQt не работал): Application - наследуется от чего-то? возможно в PyQt нужно наследовать от QObject(и наследников) чтобы иметь возможность обрабатывать сигналы?



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#8 Март 15, 2009 16:06:35

Ockonal
От:
Зарегистрирован: 2009-03-05
Сообщения: 85
Репутация: +  0  -
Профиль   Отправить e-mail  

Получение parent-object

Наследуется QDesktopWidget, который в свою очередь наследуется QObject. Да и нелогически, если ошибок во время работы нету, значит вызывать сигналы можно.



Офлайн

#9 Март 15, 2009 22:52:27

Griffon
От: Ukrain, Zaporozhie
Зарегистрирован: 2009-03-04
Сообщения: 324
Репутация: +  11  -
Профиль   Отправить e-mail  

Получение parent-object

Почитал док по классам. Разве в питоне есть статические классы?
Может сначала создать экземпляр класса. А уже потом присваивать куда нибудь его методы.



Отредактировано (Март 15, 2009 22:52:50)

Офлайн

#10 Март 15, 2009 23:00:07

crchemist
От:
Зарегистрирован: 2008-07-09
Сообщения: 379
Репутация: +  0  -
Профиль   Отправить e-mail  

Получение parent-object

Griffon
Почитал док по классам. Разве в питоне есть статические классы?
Є статичні МЕТОДИ



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version