2010-11-21 17 views
0

私はウィンドウ(program1)を作成する小さなモジュールを持っています。私はこれを別のpythonプログラム(program2)にインポートしました。Pythonでのインポート

は、どのように私はプログラム2はプログラム1にあります関数呼び出しself.Main()を行う作るのですか?

はまた、どのように私はプログラム間で値を転送して行くのですか?

セイプログラム1中のx =「こんにちは」、どのように私はPROGRAM2のxの値を得るのですか?

これはprogram1です。

import Tkinter 

class Class(Tkinter.Tk): 

    def __init__(self, parent): 

     Tkinter.Tk.__init__(self, parent) 
     self.parent = parent 

     self.Main() 

    def Main(self): 
     self.button= Tkinter.Button(self,text='hello') 
     self.button.pack() 

def run(): 
    app = Class(None) 
    app.mainloop() 

if __name__ == "__main__": 
    run() 

答えて

3

PROGRAM1がprogram1.pyに保存されている場合は、PROGRAM2に何を行うことです:あなたが行うことができますcecilkorikが言ったことに伴い

import program1 

# this will show program1's "x" variable 
print program1.x 

# this will set program1's "x" variable 
program1.x = "hello again" 

# this will run your program1's "run" function, which 
# should create the Tkinter window for you 
program1.run() 

# if you REALLY want to call "Main" yourself, which will 
# probably just break Tkinter since your init function 
# already calls Main() once, you can do... 
myclass = program1.Class(None) 
myclass.Main() 
0

、:

意志
from program1 import * 

program1.x 
を使用せずに、「x」を単独で使用できるようにします。 0

しかし、輸入*は時々重要なものを上書きすることができますし、ただやりたいことがあります。

from program1 import x 

を1つの特定の事をインポートするには。

+0

は '輸入*'あなたがインポートされているものを特定するために知っていない限り、行うには良いことではありません。重要なオブジェクトや機能を簡単に上書きすることができます。 –

+0

あなたが正しいです、私は私の答えを更新しました。 – Cheezey

関連する問題