クラスのいずれかが実際に別のクラスのサブクラスである場合、継承を使用できます。
class One(object):
def func1(self):
var1 = 'foo'
class Two(One):
# func1 already exists here.
# So does var1
あなたは、関数は、引数
class One(object):
def func1(self):
var1 = 'foo'
class Two(object):
def func2(self, var):
# Use var
それとも、グローバル変数を使用することができますが、私はあなたがちょうどOOPを入力している場合は、これを回避したいと考えを受け入れることができます。
注:大規模なプロジェクトやプログラムでグローバル変数を使用すると、実際に多くのエラーが発生する可能性があります。あなたは、別の方法に移行する経験があるまで使用することができます。しかし、結局OOPでそれらを使用しなくてはなりません。私はそれを練習目的のためだけに提案しました。それを覚えておいてください。
編集:あなたのケースでは、静的なクラス要素、たとえばを使用することができます。
class One(object):
var1 = "foonimo"
def func1(self):
#use var1
class Two(object):
def func2(self, var):
# Use as One.var1
これは動作するはずであり、グローバル変数よりも実行可能です。
変数をメソッドに渡すか、クラスの1つが他のクラスから継承して変数を取得する必要がありますが、これはOOPを理解して抽象クラス自体と(この変数はメソッドのローカルスコープにのみ存在し、 '__init__'メソッドで定義されています)。また、グローバル変数、またはOneとTwoの両方が使用する第3クラスオブジェクトの一部にすることもできます。実際のデータ関係を理解していない、「One」と「Two」と言うのは難しいです。 – Dan
ローカル変数ではなく、 'var1'をインスタンス変数にすることもできます(例:' self.var1 = 'foo'')。それから 'func2'は' One'のインスタンスへの参照を持っていればその値にアクセスすることができます。 – Blckknght
「One」と「Two」(もしあれば)の関係が理解されるように、これを抽象的なものにすると、より良い答えが得られます(実際のものが機密であれば類似の関係を選択します)。 – Dan