同じモジュールで 2 つのクラスを定義していますが、最初のクラスで 2 番目のクラスを (グローバル変数として) 使用したいと考えています。
class Class1(object):
global_c2 = Class2()
def foo(self):
local_c2 = Class2()
class Class2(object):
pass
global_c2 ではエラーが発生しますが、local_c2 では発生しません。これは、コンパイラがこのファイルを調べたときに Class2 が存在することを認識できないため、理にかなっています。また、 Class2 が最初に定義されるようにクラスを切り替えると、機能します。
しかし、これを回避する別の方法があるかどうか疑問に思っていました。たぶん、Class2が存在することをPythonに伝えることができるので、心配しないでください。または、それらを正しい順序で配置する必要がありますか?