Форум сайта python.su
0
Всем привет!
Сразу перейду к вопросу:
У меня есть класс А и B
class A(object): def __init_(self): pass class B(object): def __init_(self): self.objectA = A() def func(self): print("HELLO WORLD!")
Отредактировано Xcopy (Дек. 1, 2012 20:29:19)
Офлайн
253
Можно с помощью пакета inspect http://docs.python.org/2/library/inspect.html
провести анализ стека вызовов и найти того кто вызвал конструктор. Но передать ссылку на функцию? как сделали вы гораздо лучше.
Офлайн
0
doza_and, Спасибо большое!
Офлайн
20
Все зависит от контекста задачи. Где-то это допустимый код, где-то можно сделать “правильнее”. Обычно мне требовался объект целиком, ссылку на отдельный метод никогда не передавал.
Офлайн
0
Soteric, пишу клиент для чата.
У меня есть главный класс Client:
from authorization import AuthorizationWidget class Client(object): def __init__(self): self.authWidget = AuthorizationWidget(self.authValidator) self.authWidget.show() def authValidator(self, nick): if len(nick) > 15: return "nick is too long" else: #обращение к серверу и бла бла... и если ник верный, то return True self.authWidget.close() client = Client()
Офлайн
20
Думаю все в порядке :)
Офлайн
0
Soteric, Спасибо!)
Офлайн