言葉で説明するよりコードを見てもらった方が早いのでいざ。
基本的な使い方
基礎
from dotmap import Dotmap
m = DotMap()
# 定義なしでメンバ変数へアクセスできるような振る舞いをする
m.name = "Mark"
print(m)
# DotMap([('name', 'Mark')])
print(m.name)
# 'Mark'
# dictのようなアクセスもできる
m["name"] = "Adam"
print(m["name"])
# 'Adam'
応用
# ネストされた値へのアクセスもできる
m.person.steve.age = 31
# 中身はこんな感じ
print(m)
"""
DotMap([('name', 'Adam'),
('person', DotMap([('steve', DotMap([('age', 31)]))]))])
"""
具体例
Github - Keras-Project-Templateのように設定をjsonファイルに記述しておき、値を読み出す使い方が便利でしょうか。
config.json
{
"model": {
"lerarning_rate ": 0.001,
"momentum": 0.0,
"decay": 0.0
}
}
import json
from dotmap import Dotmap
with open("config.json", 'r') as config:
config_dict = json.load(config)
dotmap_config_dict = Dotmap(config_dict)
print(dotmap_config_dict)
"""
DotMap([('exp',
DotMap([('lerarning_rate', 0.001),
('momentum', 0.0),
('decay', 0.0)]))])
"""
以上です、読んで頂きありがとうございました。