0

私はPythonをやっている間に奇妙な便利な関数を書きました。(リストのいくつかのメソッド、さらに便利な入力関数のカップルなど)

私が欲しいのは、モジュールを.xml経由でインポートすることなく、Pythonファイルからこれらの関数にアクセスできるようにすることですimport my_module.

モジュールを自動的にインポートするか、これらの関数を別のデフォルトの python モジュールに配置する方法が考えられますが、それがどのように行われるかはあまり気にしません。

これをどのように行うべきかについて誰かが光を当てることができますか?

import my_module(多くはないことはわかっていますが、最終的には

sys.path.append("c:\fake\path")
from my_module import *

長くなりました…)

4

2 に答える 2

4

Python モジュールsiteは、Python インタープリターが実行されるたびに自動的にインポートされます。このモジュールは、という名前の別のインポートを試みますsitecustomize__builtins__そこに関数を配置して、次のようにマッピングに追加できます。

for func in [foo, bar, baz]:
    __builtins__[func.__name__] = func

これは cpython でのみ機能することに注意してください。ここ__builtins__で、 は変更可能な dict です。そうすることで、このインストールのすべての Python コードでこれらの関数を自動的に利用できるようになります。

そうしないことを強くお勧めします!暗黙的は明示的よりも優れていることはありません。コードを保守している人は誰でも、これらが一体どこから来たのか疑問に思うでしょう。

from myglobalutils import *モジュールにインポートしたほうがよいでしょう。

于 2012-06-17T10:46:46.957 に答える
1

参照してくださいimport this(数行で多くのことを述べています)。importたとえば、他のモジュールをインポートしたモジュールを作成できます。

import my.main # where main.py contains `import X, Y, Z`

# X, Y, and Z access:
my.main.X
my.main.Y
my.main.Z
于 2012-06-17T10:44:51.947 に答える