私はコマンドラインから引数を解析するPythonでarparseを使用していません。渡す周りの解析された引数には楽しい
は三つの方法がありますし、コールスタックが、私はthird_level()
にいくつかのログを追加したいこの
def first_level(args):
second_level()
def second_level():
third_level()
def third_level():
### here I want to add some logging if args.verbose is True
のように見えます。
second_level()
の署名を変更したくありません。
arg
オブジェクトをthird_lelvel()
で利用できるようにするにはどうすればよいですか?
私はグローバル変数としてarg
を保存することができますが、私はこれを処理する一般的な方法は何ですか
....何年か前に開発者向けトレーニングでグローバル変数を使用しないように言われましたか?
あなたの 'third_level(..) 'のログイン状態を解除してください。代わりに 'if args.verbose:logging.setLevel(logging.INFO)'を使用してください。 – SuperSaiyan
私は 'args'オブジェクトを最初の関数に渡すだけです。他の人が値を必要とする場合は、必要なものを明確にするために関数のシグネチャの値として渡します。 'second_level(verbose = args.verbose)'などと呼んでください。 – Ben