この質問はおそらく以前に聞かれましたが、スタックオーバーフローで見つかったその他の記事は主にグローバル変数の変更や関数のインポートなどでした。私がクイック検索をしたとき。Pythonで複数のモジュールで使用する変数を宣言する方法
私はPythonでコードを作成し始めています。私は、以下を行う最も効率的で適切な方法が何であるか不思議でした。
他のモジュールにインポートする親モジュールがあります。
# some import statements go here
# Constants that need to be the same for all objects
a = 1
b = 2
...
# A class with some useful functions
class Def():
def __init__(self):
...
このモジュールを他のものにインポートして、Defクラスの関数を使用しています。しかし、私はまた、それをインポートするすべてのモジュールが、クラスの外で宣言した定数にアクセスできるようにしたい。
私はそれらの値をそのモジュールで呼び出した場所で使用することを望むので、それらを外部に宣言しました。私はオブジェクトにアタッチしたくないので(self.a、self.bなどとして参照する必要があります)、私が使用しているすべてのモジュール全体で定数になります。
私は検討していたオプションのいくつかは、次のとおりです。
- 私は
を別のクラスのグローバル変数としてこれらを宣言し、すべてのモジュールで輸入 そのクラス
from parentmodule import *
これらのいずれかがうまくいくかどうか、これを行うための標準的な方法があるかどうかはわかりません。変数の名前の競合は、定数の性質上、問題にはなりません。私のプログラムの文脈では、他の変数を表現するために使われることのない一意の名前を持つ物理定数です。 ご質問があまりにも基本的/以前に尋ねられた場合はお詫び申し上げます。ご協力いただきありがとうございます。
変数がすべてのモジュールで共通であると言うことができるので、mystuff.a、mystuff.bなどの入力を続ける必要はありませんか? – GoK
あなたはmystuff.aをaとしてインポートすることができます。変数をaとして呼び出すことができます。変数ごとに1行のコードが必要なので、あまりにも多くの変数を持たない限り動作します。 – Parzzival
または、 'from mystuff import a'です。 –