-1

以下のようにモジュールをインポートしました。

filename = "email"
mymodule = __import__('actions.'+filename)

これで私が抱えている問題は、ファイルがすぐに実行され、ファイルから特定の関数を実行したいということです (その方法で変数を送信できます)。

私は基本的にプラグインで作業しているので、うまくいきます。

編集:当分の間、以下の行を追加したときにスクリプトが実行されるかどうかは気にしません。

mymodule = __import__('actions.'+filename)

しかし、私がやりたいのは、以下の行を追加するときに、関数を実行したいということです。しかし、代わりに、スクリプトに存在するにもかかわらず、モジュールにその機能がないというエラーが表示されます。

mymodule.dosomething(n)

編集:個人的には、関数がそれとは何の関係もないと思いますが、ここに私が開こうとしている1つのpythonファイルがあります。

import webbrowser
def OpenEmail():
    handle = webbrowser.get()
    handle.open('http://gmail.google.com')
OpenEmail()
print "Your email has been opened"
4

2 に答える 2

2

モジュールが実行されない限り、関数は存在しません。両方の方法を持つことはできません。モジュールにメインスタンザを追加する必要があるかもしれません。

于 2012-08-05T07:07:06.017 に答える
0

問題は、actionsモジュールが返されることです。これを試して:

mymodule = __import__('actions.'+filename)
for submodule in filename.split('.'):
    mymodule = getattr(mymodule, submodule)

これは、サブモジュールをインポートしようとしたときに発生します。つまりmodule.something.somethingelsemodule返されます。

于 2012-08-05T08:22:03.223 に答える