2017-12-08 12 views
0

スクリプトで使用されるスクリプトの最後に関数を配置したいと思います。この機能はまだ知られていないので、これはもちろん機能しません。 このスクリプトを同じスクリプトでインポートすることはできますか?宣言したのと同じファイルからの関数のインポート

私は、次のようにそれを行う場合、私はエラー "はImportErrorを:名前インポートすることはできません: 'サブ機能' を" 取得

from the_script_in_use import subfuction 

a=subfunction(b) 

def subfunction(value) 
    do something 
    return a 
+1

なぜ機能を上部に配置しないのですか? –

+0

確かに、これは古典的な方法です。この場合、スクリプトを読むことができないような小さなサブ関数がたくさんあります。もちろん私はそれらを別のファイルに保存することもできます(私は現時点でそうしています)が、このスクリプトでのみ使用されます。 –

答えて

1

一つの方法は書いている:

def main(): 
    b = 5 
    a = subfunction(b) 
    print a 

def subfunction(value): 
    a = value + 10 
    return a 

if __name__ == '__main__': 
    main() 

この方法で、あなたは限り、あなたは最後にmain関数を呼び出しておくと、あなたが好きな順序でコードを書くことができます。

+0

ありがとう、それは実際にはかなり論理です。 –

0

あなたはpassを使用しようとすることができます:

def func1(): 
    pass 

func1() 

def func1(): 
    print "yes" 

しかし、この実際に関数を実行するのには役立ちません。 Pythonでこれを行うには

1

あなたはステートメントを使用することがあります。

if __name__ == '__main__': 

スクリプトとしてこのファイルを実行した場合に実行されます。あなたの場合:

def main_function() 
    a=subfunction(b) 

def subfunction(value) 
    do something 
    return a 

if __name__ == '__main__': 
    main_function() 

あなたの機能をインポートする必要はありません。 そうすることで、あなたの好みに合わせて注文することができます。

+0

ありがとうございました。私は4分早くナクルバンサルから答えを選びました:-)良い一日を。 –

関連する問題