私はPython 3.6でArghを使用して複雑なコマンドライン関数を作成していますが、深い設定ファイルのために関数の引数のデフォルト値を取得すると長い文字列の辞書キーが必要になります。関数の引数でスーパーロングディクショナリクリーナーを書くには?
これは、別の辞書のキーとして辞書の値があるため、特に読みやすいようには見えません。これは よりもさらに入れ子になる可能性があります。
このようなデフォルトの値でさらに引数がある可能性があるので、これを維持するとすぐにさらに混乱することになります。これはほんの一デフォルトの引数であり、例:
import argh
import config
@arg('-v', '--version')
def generate(
kind,
version=config.template[config.data['default']['template']]['default']['version']):
return ['RETURN.', kind, version]
バージョンの引数のデフォルト値はリストと辞書の形式で大量のデータを生成し、私のコンフィグモジュールから取得されます。 試してみて、より良いデフォルト値を説明するために:あなたは、これは読みやすく保つために
config.template[ # dictionary containing variables for a particular template
config.data['default']['template'] # the default template name set in the main configuration
]['default']['version'] # The default version variable within that particular template
何をお勧めですか?
はおそらく、あなたが[easydict](https://pypi.python.org/pypi/easydict/)のようなものを探していますか[ treedict](http://www.stat.washington.edu/~hoytak/code/treedict/overview.html)(または同じアイデアの無数のバリエーション)? – drdaeman