2017-06-26 4 views
0

私はPythonにはかなり新しいです。ここでは、プログラムの作成中に遭遇した問題があります。Python 3でインポートされた名前を再バインドできません。

私は、Python 3でのインポート機能の再バインドする名前にしようとしています:

例えば

from module import imported_function 
... 
imported_function = function(5) 

ただし、何らかの理由で対応できません。モジュールおよび非モジュール一imported_functionは関数と呼ばれる。

imported_function = another_function(2) 

追記:ここで、another_function(2)モジュールの外部に定義される関数です。 Imported_functionは、代入文imported_function = function(5)の後であっても、モジュールからimported_functionを取得し続けます。

私は何が起こっているのか分かりません。代入でインポート文の優先順位が高くなっていますか?

+0

あなたがしていること、期待すること、そして何が起こるのかをもっと詳しく説明してください。 –

答えて

1

私はあなたを正しく理解した場合、あなたのケースではimport ... asを使用することができます。

from module import imported_function as another_function 

another_function(...) 

それとも、別の名前にあなたの関数を再割り当てすることができます:

another_function = imported_function(2) 
:あなたがこれを行う場合は、しかし、

another_function = imported_function 

あなたはimported_functionanother_functionになりたい場合たとえば、その後、これを行います

imported_functionの定義に応じて、 の値またはNoneが変数another_functionに返されます。かっこが重要です。

+0

ありがとうございます。しかし、私は、higher_order関数の入力としてimported_functionという名前を使用しています。変更できるように、imported_functionという名前で表される関数が必要です。 –

+0

@QuantumAMERICCINO imported_functionのために変更できることはどういう意味ですか? Pythonではすべてがオブジェクトです。インポートされた関数を別の関数にパラメータとして渡すことができます。 – Nurjan

関連する問題