回答:
他のファイルを次のようなモジュールとしてインポートする必要があります:
import Math
Calculate関数の前にモジュール名を付けたくない場合は、次のようにします。
from Math import Calculate
モジュールのすべてのメンバーをインポートする場合は、次のようにします。
from Math import *
編集: ここでは良いの章であるから飛び込むのPython、このトピックに深さにもう少し行きます。
impモジュールと魔法の呼び出しがあります__import__。
"include"コマンドを書くだけです:
import os
def include(filename):
if os.path.exists(filename):
execfile(filename)
include('myfile.py')
@Deleet:
@bfieck remarkは正しいです。python2と3の互換性のために、次のいずれかが必要です。
Python 2および3:代替1
from past.builtins import execfile
execfile('myfile.py')
Python 2および3:代替2
exec(compile(open('myfile.py').read()))
from module import *か?また、呼び出すファイルの本文にコードがある場合、これを実行すると、そのコードが実行されます。
execfile
compile()、上記以外の署名があります。正しいPythonの2と3は、だから:代替2は次のようになりますexec(compile(source=open('myfile.py').read(), filename='myfile.py', mode='exec'))
使用する場合:
import Math
そうすれば、Mathの関数を使用できるようになりますが、Math.Calculateを実行する必要があるため、明らかにそれは望ましくありません。
プレフィックスを付けずにモジュールの関数をインポートする場合は、次のように明示的に名前を付ける必要があります。
from Math import Calculate, Add, Subtract
これで、計算、加算、減算を名前だけで参照できるようになりました。Mathからすべての関数をインポートしたい場合は、次のようにします。
from Math import *
ただし、内容が不明なモジュールでこれを行う場合は、十分に注意する必要があります。同じ関数名の定義を含む2つのモジュールをインポートすると、一方の関数がもう一方の関数を上書きします。
私はpython検査モジュールが非常に役立つことがわかりました
たとえばteststuff.py
import inspect
def dostuff():
return __name__
DOSTUFF_SOURCE = inspect.getsource(dostuff)
if __name__ == "__main__":
dostuff()
そして、別のスクリプトまたはpythonコンソールから
import teststuff
exec(DOSTUFF_SOURCE)
dostuff()
そして今、dostuffはローカルスコープにあり、dostuff()はコンソールまたはスクリプト_ name _を返しますが、test.dostuff()を実行するとpythonモジュール名が返されます。
from Math import *はお勧めできません。