1

この質問はかなり初歩的なものかもしれませんが、次のようになります。

多くのクラスが必要なアプリを書いています。基本的にこれらのクラスをグループにまとめたいと思います。そのために、基本的にフォルダーを作成し、それらのフォルダーにクラス .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

4

0 に答える 0