Pythonは初めてです。これがナブのものである場合はお詫びします:
小さなモジュールの作成 (最終的にはパッケージになるかも?)。単一のファイルには大きすぎるため、大きなクラスを個別のファイルに移動しています。私のクラスはすべて、いくつかの基本的な機能を収容するために使用する基本クラスを拡張します。
これが私の問題の一般的な形式です:
ランタイム.py:
import baseclass
import subclass
#do stuff
baseclass.py
class BaseClass():
def __init__(self):
pass
def sharedMethod(self):
pass
# shared functionality
サブクラス.py
class SubClass(baseclass.BaseClass):
def __init__(self):
BaseClass.__init__(self)
トレースバックは次のとおりです。
Traceback (most recent call last):
File "/path/to/runtime.py", line 2, in <module>
import baseclass, subclass
File "path/to/subclass.py", line 2, in <module>
class Subclass(baseclass.BassClass):
NameError: name 'baseclass' is not defined
インポートbaseclass
するとうまくいきsubclass.py
ますが、これは、拡張するすべてのクラスがそれbaseclass
をインポートする必要があることを意味しているようです。これを行う適切な方法が何度も何度もインポートされるわけではありません。baseclass
別々のファイルからクラスを相互に構築する順序でインポートできるようにしたいのですが、その方法がわかりません。アドバイス?
注:すべての回答は役に立ちました/正しかったです。「正しい」ものとして、最も徹底的で、誰にとっても役立つ可能性が最も高い答えを選択しました。乾杯、ありがとう。:)