この質問はかなり初歩的なものかもしれませんが、次のようになります。
多くのクラスが必要なアプリを書いています。基本的にこれらのクラスをグループにまとめたいと思います。そのために、基本的にフォルダーを作成し、それらのフォルダーにクラス .py ファイルを配置します。
したがって、フォルダー構造の例は次のようになります。
mainApp.py
moreAppCode.py
functions
|- mathstuff.py
|- my_object.py
`- network.py
gui
|- wxMainForm.py
|- wxSplashScreen.py
`- wxAboutBox.py
現在、「インポート」ステートメントでこれらのクラスを簡単に参照する唯一の方法は__init__.py
、2 つのフォルダー内にファイルを作成し、それらのinitファイル内に各 .py ファイルをインポートすることです。だから私は次のようなことをしなければなりません:
(functions/__init__.py)
from mathstuff import mathstuff
from my_object import my_object
from network import network
import functions
これにより、mainApp.pyのようなことを行うことができます。
ただし、これを実現するためのより簡単で簡単な方法があるはずです。
私は実際に次のようなことをする必要はありませんimport gui.wxMainForm.wxMainForm
(各 .py ファイルには、そのファイル名で表されるクラスが 1 つしか含まれていません)。また、これにより、次のようなことを行うことimport gui.*
ができなくなります (それは無効です)。したがって、私が見つけたものに関係なく、initファイルまたはそれらを使用する予定の実際の .py ファイルのいずれかで、すべての .py ファイルを手動でインポートする必要があります。
を使用することで混乱の一部を軽減できますfrom gui import wxMainForm
が、それでもやらなければなりませんwxMainForm.wxMainForm()
。私は多分することができますfrom gui.wxMainForm import wxMainForm
か?しかし、その後、私が作業しているコード ファイルの先頭にあるインポート ステートメントの巨大な混乱に戻ります。
これの全体的なポイントは、これを行うためにそのinitファイルに依存する必要がないようにしたいということです。クラスの名前を変更したり、クラスを追加したりする必要がある場合は、initに移動して追加または変更する必要があるためです-忘れがちで、デバッグが難しいことです。
私は何かを逃しましたか?
ありがとう
-f