2016-03-18 3 views

Antwort

0

Nein, der Controller bezieht sich nicht immer auf das Hauptprogramm. Es kann sich auf jedes gewünschte Objekt beziehen. In dem von Ihnen zitierten Beispiel war die Verwendung der Anwendung die einfachste und kürzeste Lösung.

Zum Beispiel:

class Model(...): ... 
class Controller(...): ... 
class View(tk.Tk): 
    def __init__(self, controller): 
     self.controller = controller 
     tk.Tk.__init__(self) 
     ... 
    ... 
class App(...): 
    def __init__(...): 
     ... 
     model = Model(...) 
     controller = Controller(..., model=self.model) 
     view = View(..., controller=self.controller) 
     controller.add_view(view) 
     ... 
    ,,, 

if __name__ == "__main__": 
    app = App() 
+0

Im confused.If noch nicht immer das Hauptprogramm, wie weiß Python, was "self.controller = Controller" sich bezieht? Wie weiß Python, dass sein anderes Objekt, nicht das Hauptprogramm? –

+0

@marcoalexis: Wie weiß Python? Du sagst es. Wenn Sie ein anderes Objekt übergeben, wird 'self.controller' auf dieses Objekt gesetzt. Sie können übergeben, was Sie wollen, in den Parameter für "controller" –

+0

über den Code, den ich zitiert habe, ich denke, das ist ursprünglich von Ihnen? Die self.controller = Controller bezieht sich direkt auf das Hauptprogramm, obwohl es im Wesentlichen nicht definiert ist Programm, weil ein anderes kann richtig bezeichnet werden? und zu Ihren anderen Beispielen in Ihrer Antwort vor einer Weile, Es kann sich auf andere Objekte beziehen, weil viele Klassen deklariert sind und Sie es speziell auf ein bestimmtes Objekt setzen, richtig? –

Verwandte Themen