設定値を取得するときにうまいことやりたい

Pythonで書かれた設定ファイルから値を拾ってくるときに、今は以下のようにしている
value_nameを文字列で渡して、評価可能か見て、関数呼び出し可能か見て、いずれもダメなら2つ目の引数のdefault_valueを返す、みたいな。

def force_get_value(value_name, default_value):
    try:
        eval(value_name)
    except NameError:
        if callable(default_value):
            return default_value()
        else:
            return default_value
    else:
        _value = eval(value_name)
        if callable(_value):
            return _value()
        else:
            return _value

value_nameを文字列で渡すってあたりがスマートじゃない気がする。組み込みで使えそうな関数とかないんだろうか。

  • 2008/02/12追記

djangoの場合はglobal_settings.pyを読み込んだ後にsettings.pyで設定の上書きをしてるのかな。
ならデフォルトの設定ファイルを用意する方法がいいのかやはり。