そのモジュールで定義されていないメソッドを呼び出したいモジュールがあります。出来ますか?
#module
def foo():
print bar()
#main
from foo import foo
def bar():
return "Foo bar"
def main():
foo.foo()
そのモジュールで定義されていないメソッドを呼び出したいモジュールがあります。出来ますか?
#module
def foo():
print bar()
#main
from foo import foo
def bar():
return "Foo bar"
def main():
foo.foo()
いいえ、あなたがすることはできません。Python は、関数が定義されているモジュールと同じモジュールで未定義の名前を検索します。
代わりに関数参照を渡す必要があります。
def foo(func):
print func()
次にメインで:
def main():
foo.foo(bar)
あるモジュールから別のモジュールに関数を追加することもできますが、コールバックとして渡す方がおそらく適切です。状況によります。
#module
def foo(bar):
print bar()
#main
from foo import foo
def bar():
return "Foo bar"
def main():
foo(bar)