サブモジュール内から親モジュールからクラスをインポートする方法を理解するのに少し苦労しています。次のディレクトリ構造があります。
module/
__init__.py (1)
common.py (containing testfunc and CommonClass)
submod/
__init__.py (2)
test.py (containing TestClass)
私が(1)
持っている:
from common import *
だから私は直接行うことができます:
import module
module.testfunc()
私が(2)
持っている:
from test import TestClass
だからmodule
私はできる:
import submod
class_inst = submod.TestClass()
今TestClass
(に含まれてtest.py
います)で のインスタンスを使用したいCommonClass
ので、最初に次を使用してインポートしてみました:
from ..common import *
CommonClass
これは正常に動作しますが、 inのインスタンスを作成しようとするとTestClass
:
class TestClass(object):
def __init__(self):
self.inst = CommonClass()
エラーが発生します:
NameError: global name 'CommonClass' is not defined
同様に、代わりに試してみるとfrom ..common import CommonClass
、エラーが発生します。
ImportError: cannot import name CommonClass
私が知る限り、CommonClass
内から見えるはずなtest.py
ので、なぜ見つからないのかわかりません。の使用法について理解していないことがあると感じています__init__.py
。私が犯している明らかな間違いを指摘して助けてくれる人はいますか?