2014-10-29 85 views
0

我正在用wxPython庫製作一個GUI。我有一些模塊。應用程序使用調用主控制器的主函數開始。像這樣:從python的外部模塊調用主要方法

from controller.mainController import MainController 

if __name__ == '__main__': 

    createGUI() 

def createGUI(): 
    """ 
    Create the GUI 
    """ 
    app = wx.App(False) 
    host = MainController(app) 
    app.MainLoop() 

def readTerminal(): 
    terminal = consola.Console() 
    try: 
     terminal.cmdloop("Hola!") 
     terminal.cmdloop("Fallo en la linea dos") 
    except KeyboardInterrupt: 
     terminal.do_quit(None) 

我想從另一個模塊中調用readTerminal()函數。這些模塊正在寫入不同的文件。我能做什麼?

+0

問題是我無法在其他模塊中導入主模塊。 – 2014-10-29 13:37:58

+2

我不明白這個問題。從這個文件導入readTerminal應該是你需要公開readTerminal()函數的全部。如果您需要首先調用createGUI(),我會想象您想要使用多線程或多處理,因爲您想在UI主循環期間評估python代碼。但是,我從來沒有使用過wxpython,你的帖子很難理解。 – 2014-10-29 13:42:10

+0

@iñigoDeLaFuente:爲什麼你不能導入主模塊? – 2014-10-29 13:53:02

回答

0

如果主模塊和其他模塊都需要調用readTerminal,那麼應該將該函數放入可以從中導入的通用模塊。我通常有一個控制器模塊或一個實用程序模塊,我可以保留那樣的功能。

+0

感謝Mike.I認爲這是做到這一點的最佳方式。問候 – 2014-11-03 07:51:10