2012-11-01 14 views
0

我在不同的位置有兩個python腳本。我嘗試導入第二個函數的功能,使它們與第一個的全局函數集成。這工作正常。但是,當我從第二個腳本中調用函數時,他們找不到。如何從Python中不相關的腳本向當前模塊添加函數

foo.py

def run(): 
    glob = {} 
    loc = {} 
    execfile("/path/to/bar.py", glob, loc) 
    currmodule = globals() 
    currmodule["func_in_bar"] = glob["func_in_bar"] 
    func_in_bar() 

def func_in_foo_A(): 
    print("fooA") 

def func_in_foo_B(): 
    print("fooB") 

if __name__ == "__main__": 
    run() 

bar.py

def func_in_bar(): 
    func_in_foo_A() 
    func_in_foo_B() 

當富時,它會失敗:NameError: global name 'func_in_foo_A' is not defined

+0

'glob = loc = {}'可能不是一個好主意,因爲您然後共享相同的字典 –

+0

右側,而不是使用loc無論如何:) – RickyA

回答

1

bar.py你需要添加一個import foo,然後引用foo.func_in_foo(),等等。

或者,使用以下格式:from foo import func_in_foo

+0

Whoeha。我認爲這是行不通的,因爲酒吧是在其他地方,它不能看到富。但foo正在走上正軌,所以這就像一個魅力! – RickyA

相關問題