Здравствуйте, Константин Б., Вы писали:
F>>есть какая нибудь конструкция, как в плюсах, чтобы объявить наличие класса до его определения?. КБ>Можно сначала объявить класс, а потом присвоить ему все его члены.
да.. а можно всё передать в __init__()
но интересует именно вышеуказанный вариант
Здравствуйте, yumi, Вы писали:
F>>Как правильно сделать следующую вещь, чтобы python не ругался на "NameError: name 'Bar' is not defined"?. Y>Насколько я знаю, в Питоне нет вообще declarations, только выполнимые конструкции, соответственно и нет forward declarations.
да, наверное, это так и есть.. надо почитать документацию..
спасибо..
Здравствуйте, neFormal, Вы писали:
F>Здравствуйте, Константин Б., Вы писали:
F>>>есть какая нибудь конструкция, как в плюсах, чтобы объявить наличие класса до его определения?. КБ>>Можно сначала объявить класс, а потом присвоить ему все его члены.
F>да.. а можно всё передать в __init__() F>но интересует именно вышеуказанный вариант
В смысле? Ваш и мой вариант — идентичны.
Или вы имели ввиду что-то вроде
class Foo:
def __init__(self):
self.m = Bar()
class Bar:
def __init__(self):
self.m = Foo()
?
Тогда это заменяем на:
class Foo:
pass
class Bar:
pass
def init_foo(self):
self.m = Bar();
def init_bar(self):
self.m = Foo();
Foo.__init__ = init_foo;
Bar.__init__ = init_bar;
Здравствуйте, yumi, Вы писали:
Y>Насколько я знаю, в Питоне нет вообще declarations, только выполнимые конструкции, соответственно и нет forward declarations.