参考文献
以下のようにするとクラスのコンストラクタの引数にデフォルト値を注入できます。
- hoge.py で Onigiri クラスを実装します。
- config.gin に Onigiri クラスのコンストラクタの引数のデフォルト値をかきます。
- hoge.py に戻って、Onigiri クラスの定義の後で config.gin をパースします。これでコンストラクタの引数にデフォルト値が注入されます。無論引数を渡すこともできます。
Onigiri.guzai = 'tuna'
import gin @gin.configurable class Onigiri: def __init__(self, guzai): self.guzai = guzai def print_guzai(self): print(self.guzai) gin.parse_config_file('config.gin') onigiri = Onigiri() onigiri.print_guzai() onigiri2 = Onigiri('ume') onigiri2.print_guzai()
$ python hoge.py tuna ume
関数の引数にもデフォルト値を注入できます。
love_onigiri.guzai = 'tuna'
import gin @gin.configurable def love_onigiri(guzai): return f'I love {guzai} onigiri.' gin.parse_config_file('config.gin') s = love_onigiri() print(s)
$ pipenv run python hoge.py I love tuna onigiri.