2010-11-21 65 views
0

我有一個小模塊創建一個窗口(program1)。我將它導入到我的另一個python程序(program2)中。Python導入

我該如何讓程序2做函數調用self.Main()這是在program1?

另外我該如何去跨程序傳輸值?

說在program1 x ='你好',我怎麼得到x的值在program2?

這是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

如果程序1被保存在program1.py,然後在程序2,你做的是:

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

隨着什麼cecilkorik說,你可以這樣做:

from program1 import * 

這會讓你自己使用'x',而不用做:

program1.x 

然而,進口*有時可以覆蓋重要的東西,你可能只想做:

from program1 import x 

如果只輸入一個具體的東西。

+0

'import *'不是一件好事情要做,除非你確切地知道你正在導入什麼。您可以輕鬆覆蓋重要的對象或功能。 – 2012-05-31 16:22:44

+0

你是對的,我更新了我的答案。 – Cheezey 2012-06-02 04:46:01