Форум сайта python.su
0
Подскажите вот в какой ситуации. У меня имеются два модуля. В первом модуле есть класс и в этом же модуле происходит создание его инстанса. В втором модуле есть функция которой нужно передать этот инстанс. Все было бы просто, если бы можно было просто создать во втором модуле еще один инстанс класса Main(), но условие такого, что конструктор класса Main() может быть вызван только один раз за работу программы, поэтому второй инстанс класса создать создать нельзя. Как можно сослаться на main в модуле 1 из модуля 2?
Модуль 1
main = Main() class Main(): def __init__(self,):
x = 'abc' func(ИНСТАНС КЛАССА MAIN, x)
Офлайн
173
http://docs.python.org/tutorial/modules.html
module2:
from module1 import main x = 42 func(main, x)
Офлайн
52
По мне так более правильно будет описать класс как-то так:
class Singleton(object): _instance = None def __new__(cls, *args, **kwargs): if cls._instance is None: cls._instance = super(Singleton, cls).__new__(cls, *args, **kwargs) return cls._instance
Отредактировано fata1ex (Июнь 2, 2012 14:07:58)
Офлайн