私は別のモジュールの関数を使用しようとしているが、その関数はグローバル変数に特定の属性があるかどうかをチェックするデバッグ関数を呼び出すという問題があります。このグローバル変数は、関数がインポートされたときに設定されません(そうでない場合は parser.parse_args
を使用して設定されます)。明確にするために:
ファイル findfile.py
:
_args = {}
def _debug(msg):
if _TEST and _args.debug:
print msg
def findfile(filename):
...
_debug("found file")
...
if __name__ == "__main__":
...
_args = parser.parse_args()
...
File copyafile.py
import findfile
findfile.findfile("file1")
これは私に
AttributeError: 'dict' object has no attribute 'debug'
これで、 dict
で parser.parse_args()
が名前空間(??)を返し、 _args.debug
。しかし、私の質問です:この状況では、 _args.debug
を False
に設定するために、 _args
に何かを正しく割り当てることができますか?
findfile.py は変更できませんが、 copyafile.py
を変更することができます。
これらのものは通常どのように扱われますか?スクリプトでデバッグフラグを有効にする方法は?