同じ名前空間に共存する場合に、モジュール レベルとクラス レベルのインポートがどのように処理されるかを明確にする必要があります。次の例を参照してください。
作品:
import datetime
print datetime.datetime.utcnow()
失敗:
from datetime import datetime
print datetime.datetime.utcnow()
エラー: AttributeError: タイプ オブジェクト 'datetime.datetime' には属性 'datetime' がありません
作品:
from datetime import datetime # Is this ignored?
import datetime
print datetime.datetime.utcnow()
3番目の例では正確に何が起こっていますか? 2 番目のモジュールのインポートは、クラス固有の最初のインポートに取って代わりますか? これは、モジュール レベルとクラス レベルのインポートを同じ名前空間に混在させてはならないということですか?