私はPythonを初めて使いました。この質問を書くのに適切な言語を使用していないと謝ります。私はWindowsマシン上でPython 3.6.1を使用しています。私は問題の実例を提供しています。依存クラスを持つモジュールをロードする
ファイルDemo_func.pyに保存されたモジュールを書き込むとします。私はのように私のスクリプト内の関数chebyshev_nodesを書く代わりに、場合
NameError: name 'Chebyshev' is not defined
:それは、このエラーが発生し
from numpy.polynomial.chebyshev import Chebyshev
from Demo_func import chebyshev_nodes
chebyshev_nodes(5, [1,5])
:
def chebyshev_nodes(degree, domain):
return Chebyshev.basis(degree,domain).roots()
は、私は次のスクリプトを実行します。これは、次の機能が含まれています以下、それはうまく動作します。
from numpy.polynomial.chebyshev import Chebyshev
def chebyshev_nodes(degree, domain):
return Chebyshev.basis(degree,domain).roots()
chebyshev_nodes(5, [1,5])
私の理解は、チェビシェフをグローバルにインポートすることです。しかし、どういうわけか、それは私のモジュールDemo_func内で動作します。 Chebyshevクラスに依存するモジュールを作成するにはどうすればよいですか?
「Chebyshevをインポートすることはグローバルである」と私は理解しています。モジュールの初期化はグローバルで実行されますが、インポートを実行したスコープで使用できるのはChebyshev名だけです。 – user2357112
ありがとう、それは役に立ちました。関数定義内でChebyshevをインポートすると動作します。それはこれを行う正しい方法ですか? –