0
var_doesHave = True
class A:
global var_doesHave
var_doesHave = False
# Call Class B
class B:
if (var_doesHave):
# do foo
else:
# do bar
私はこのようなPythonのluigiパイプラインコードを持っています。私が端末を調べると、プログラムはクラスAを呼び出してdoesHave = falseを設定しているように見えますが、クラスBを実行する前にdoesHaveはtrueに戻ります。グローバル変数はPythonでデフォルト値に戻ります。Luigi Pipeline
基本的に、私は 'bar'をしたいと思いますが、グローバル変数がtrueに戻って戻ってくるので 'foo'を続けます。
これはなぜ起こっているのですか?私はこれがPython自体ではなく、Luigi Pipelineと関係があることはほとんど確信しています。
ここではクラス宣言の順序は関係ありません。 '' B() ''は '' A() ''が呼び出されるまで呼び出されません。これは両方の宣言の後に起こります。 – jasonharper
ありがとう@jasonharperそうです。私の答えを修正... – matagus