ここに実際のコード全体を投稿してもあまり意味がないので、問題を一般化するために最善を尽くします。関数 (名前を x とします) は、コードの先頭で定義されています。次に、クラス (メソッド z があり、z が最終的に x を呼び出す) が別の .py ファイルからインポートされます。そのクラスのオブジェクトが作成されます。z が呼び出された後、「グローバル名 'x' が定義されていません」というエラーが表示されます。次に、.py ファイルのすべてのコードを 1 つのファイルに貼り付け、その上に def(x) を配置して、何が起こるか見てみようと思いました。もちろん、意図したとおりに動作しました。以前の方法の問題が何であるかがわかりません(私はこれに固執したいと思います)、それは事実上同じではありませんか?