0

別の場所に 2 つの Python スクリプトがあります。最初の関数のグローバルと統合されるように、2 番目の関数をインポートしようとしています。それはうまくいきます。ただし、最初のスクリプトの関数を 2 番目のスクリプトから呼び出すと、関数が見つかりません。

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()

foo を実行すると、次のように失敗します。NameError: global name 'func_in_foo_A' is not defined

4

1 に答える 1

1

を追加してから、参照などbar.pyを追加する必要があります。import foofoo.func_in_foo()

または、次の形式を使用します。from foo import func_in_foo

于 2012-11-01T22:04:25.507 に答える