以下の2つのインポートステートメントには違いがありますか?それとも同じことでしょうか?これらの2つのインポートの違いはありますか?
from package import *
import package
以下の2つのインポートステートメントには違いがありますか?それとも同じことでしょうか?これらの2つのインポートの違いはありますか?
from package import *
import package
from package import *
パッケージからローカル名前空間にすべてをインポートします。これは望ましくないもの(ローカルのものを上書きする関数のような)を導入する可能性があるため、これはお勧めしません。これはすばやく便利なインポートツールですが、状況が深刻な場合は、from package import X,Y,Z
またはimport package
の構文を使用する必要があります。
import package
パッケージからローカルpackage
オブジェクトにすべてをインポートします。したがって、パッケージがsomething()
関数を実装する場合は、package.something()
で使用します。
また、ネストされた名前空間のケースについてもう1つ話しておきましょう。関数package.blabla.woohoo.func()
があり、import package.blabla.woohoo
を使用でき、package.blabla.woohoo.func()
を使用できますが、それは複雑すぎます。代わりに、簡単な方法はfrom package.blabla import woohoo
で、次にwoohoo.func()
またはfrom package.blabla.woohoo import func
を使用し、次にfunc()
を使用します。私はこれが理にかなってほしい。そうでない場合は、ここでのコード片が説明します:
import package.blabla.woohoo
package.blabla.woohoo.func()
from package.blabla import woohoo
woohoo.func()
from package.blabla.woohoo import func
func()
希望はこのことができます:)
差はパッケージの名前空間を使用することです。それらは非常に異なっている
import package
package.class_in_package()
対
、[Pythonモジュールをインポート]を参照(http://effbot.org/zone/import-confusion.htm)。 –