3

パッケージ a があり、ツリーは次のとおりです。

a/
  /__init__.py
  /b.py

どうすればいいimport a.b as a_.bですか?

4

2 に答える 2

5

次の 2 行で行う必要があります。

import a as a_
from a import b

print(a_.b)
# <module 'a.b' from '.\\a\\b.py'>

または:

import a as a_
import a.b

print(a_.b)
# <module 'a.b' from '.\\a\\b.py'>

前者には名前空間に配置bされるという欠点があり、後者には名前空間に配置されるという欠点がありaます。del b必要に応じて、それぞれとを使用して修正できますdel a

または、2 行目をそれぞれfrom a import b as _またはとして記述し、名前空間に表示されないようにすることもできます。import a.b as _ba

于 2013-09-11T01:41:14.003 に答える
0

これを行う 1 つの方法は、名前 a_ を sys.modules 辞書に登録することです。

import sys
import a as a_
sys.modules['a_'] = a_
import a_.b


警告: これを行うa_と、この python セッションに対してグローバルに登録されるため、これを試みる他のモジュールimport a_a.

あなたの特定のケースでは、グローバルな影響があるため、これはおそらく悪い方法です。ただし、これは、グローバルな名前変更が必要な場合に役立ちます。

于 2013-12-16T04:06:34.603 に答える