関数を非推奨としてマークし、その関数が使用されるたびに警告が表示されるようにするデコレータを見てきました。グローバル変数に対して同じことをしたいのですが、グローバル変数のアクセスを検出する方法が思いつきません。私は globals() 関数について知っており、その内容を確認できましたが、実際に使用されているかどうかではなく、グローバルが定義されているかどうかがわかります (関数が非推奨であり、すべてが削除されていない場合でもそうです)。 . 私が考えることができる最良の代替案は、次のようなものです。
# myglobal = 3
myglobal = DEPRECATED(3)
しかし、DEPRECATED を「3」とまったく同じように動作させる方法の問題以外に、DEPRECATED がアクセスされるたびに検出できるようにするために何ができるかはわかりません。私ができる最善の方法は、グローバルのすべてのメソッドを反復処理し (Python ではすべてがオブジェクトであるため、「3」にも文字列などに変換するためのメソッドがあるため)、それらをすべて非推奨にするために「装飾」することだと思います。しかし、それは理想的ではありません。
何か案は?他の誰かがこの問題に取り組みましたか?