プロジェクト全体で使いやすい ConfigParser のサブクラスを作成しています。
class MyConfiguration(ConfigParser.ConfigParser):
def __init__(self, filename):
ConfigParser.ConfigParser.__init__(self)
self.readfp(open(filename))
def get(self, section, option):
return eval(ConfigParser.ConfigParser.get(self, section, option))
質問: get() メソッドを eval を含むメソッドでオーバーライドすることの欠点 (セキュリティ、意図しない結果) はありますか?
構成ファイルで Python データ型 (タプルなど) を使用したいが、プロジェクト コード全体で評価を処理したくないため、評価を MyConfiguration クラスに焼き付けたいと考えています。