LINUX.ORG.RU

[python][pygtk] Насколько корректно?....

 ,


0

0

Есть вот такой код:

class AboutDialog():
    __instance = None
    
    def __init__ (self):
        if AboutDialog.__instance == None:
            AboutDialog.__instance = self
        else:
            AboutDialog.__instance.about.present()
            return
        self.about = gtk.AboutDialog()
        self.about.set_name("---")
        self.about.set_version(VERSION)
        self.about.set_copyright(COPYRIGHT)
        self.about.connect("response",self.about_response)
        self.about.show()
Насколько корректно для проверки того, что окно уже есть менять класс? На данный момент подобный код существует только в одном месте.

Но есть задача, решение которой я вижу в использовании подобного кода. Есть несколько всплывающих окон, в каждый момент может быть показано только одно. Для определения того, какое в данный момент показано надо это где-то хранить. Думал сделать также. Еще есть аналогичная задача, надо сделать очередь для виджетов, которые надо обновить. Или не мудрить и сделать просто глобальные переменные?

★★★★★

Абсолютно корректно.

ntp дал ссылку на, по сути, аналогичные методы, там везде используется тот факт что сам класс тоже инстанс и у него могут быть свои данные которые общие для всех инстансов. Из всех методов мне тот что __new__ нравится, этот метод как раз для подобных целей создан.

А метаклассы тут лишние, имхо.

true_admin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.