YAMLもどき in Python
YAMLって便利ですよね。でも実は、Pythonには言語仕様レベルで、同等の機能がある。
config.py:
PREFIX='>>' DELIMITER='----' class ACCOUNT: id = 'username' pwd = 'password' class DETAIL: name = 'J.Luser' email = 'jluser@foobar.com'
main.py:
import config ... pref = config.PREFIX delim = config.DELIMITER ... login(config.ACCOUNT.id, config.ACCOUNT.pwd) print "email is %s"%(config.ACCOUNT.DETAIL.email) ...
ほらね?(笑)
動的に読み込むなら、
ctx = {} exec 'import config' in ctx config = ctx['config'] print "PREFIX is '%s'"%(config.PREFIX)
リロードだってできる。
reload(config)
ネタですよ、いちおう。実用的かどうかは、よくわからない。意外と使えそうな気もする。
# 書き出しはできないな。でもそういう使い方したことないし、いいや。
ネタついでに書いておくと、ファイル以外の任意の入力(文字列とか、ストリームとか)でも、exec ってやる方向で、なんとかなります。
マジメにやりたい人はこちら → PyYAML http://www.pyyaml.org/wiki/PyYAML
# 「ぴゃむる」って読みたくなる。