PythonクラスをPythonコンソール内で機能させるのに問題があります。すべてのクラスをグローバル名前空間に自動的にインポートして、prefix.module.namesなしで使用できるようにします。
これが私がこれまでに持っているものです...
projectname/
|-__init__.py
|
|-main_stuff/
|-__init__.py
|-main1.py
|-main2.py
|
|-other_stuff/
|-__init__.py
|-other1.py
|-other2.py
各ファイルは同じ名前のクラスを定義します。たとえば、main1.pyはMain1と呼ばれるクラスを定義します。
MyPYTHONPATH
はprojectname/への絶対パスです。
これを含むPythonスタートアップファイルがあります:
from projectname import *
しかし、これではクラスをまったく使用できません。Pythonコンソールを起動したら、次のように記述できるようにしたいと思います。
ob=Main1()
ただし、Main1は現在の名前空間内にないため、機能しません。
__init__.py
ファイルに追加してみました...
でprojectname/__init__.py
:
import main_stuff
でprojectname/main_stuff/__init__.py
:
import other_stuff
__all__ = ["main1", "main2", "main3"]
等々。そして、スタートアップファイルに次のように追加しました。
from projectname.main_stuff import *
from projectname.main_stuff/other_stuff import *
しかし、Pythonコンソール内でクラスを使用するには、次のように記述する必要があります。
ob=main1.Main1()
私はそのmain1.
部分を必要としないことを望みます。Pythonコンソールを使用するときにクラスをグローバル名前空間に自動的に配置する方法を知っている人はいますか?
ありがとう。
====編集====
必要なのは、クラスレベルでパッケージをインポートすることですがfrom package import *
、モジュールレベルですべてを提供します。私はこのようなことをする簡単な方法を求めています:
for module in package do:
from package.module import *
====別の編集====
結局、クラスインポートをPythonスタートアップファイルに個別に追加することになりました。それを維持するオーバーヘッドのためにそれは理想的ではありませんが、それは私が望むことをします。
from class1.py import Class1
from class2.py import Class2
from class3.py import Class3