2016-03-20 12 views
4

こんにちは私はユーザー定義の関数をseparteファイルmy_functions.pyに保存しています。例えば、別のファイルmain.py別のpyファイルのコード用のPythonインポートモジュール

#my_functions.py 
def some_func(): 
    sleep(1) 
    print(1) 

そして、メインのコードは:私はmain.py実行すると

#main.py 
from time import sleep 
from my_functions import * 

some_func() 

、私はsleepが定義されていないというエラーが発生しています。 my_functions.pyからインポートされたものがわからないfrom time import sleep

my_funcions.pyに時間モジュールをインポートする必要がありますか?

私だけsome_funcがインポートされ、そして私はmy_functions.pyfrom time import sleepを書く場合は、この文が実行され得ることはありません...

そして、ユーザー定義関数を保存する方法については一般的なアドバイスがあると思った原因私は、混乱して感じます感謝。ありがとう

+0

です。同じことを複数のファイルにインポートすることはできますが、Pythonはそのファイルを追跡し、ファイルを複数回読み込むことはできます(複数の名前空間を読み込むこともできます)。 –

答えて

1
from time import sleep 
#my_functions.py 
def some_func(): 
    sleep(1) 
    print(1) 

あなたが使用するファイル/モジュールで関数をインポートする必要があります。

1

はい、my_functions.pyにtimeモジュールをインポートする必要があります。これは、インポートの仕組みを理解するのに役立ちます。

インポートステートメントは、2つのステップで実行されます。(1)モジュールを見つけて必要に応じて初期化します。 (2)(インポートステートメントが発生するスコープの)ローカル名前空間に名前を定義します。最初の形式(fromを除く)は、リスト内の各識別子に対してこれらの手順を繰り返します。 fromのフォームは、ステップ(1)を1回実行した後、ステップ(2)を繰り返し実行します。 https://docs.python.org/2.0/ref/import.html

はここではい、あなたはそのファイルにmy_functions.py` `で必要なモジュール(複数可)および/またはエンティティをインポートする必要がa style guide from PEP008 about import

関連する問題