在我正在编写的程序中,我想创建一个只读的ConfigParser,以便可以安全地全局使用.我没有意识到这一点,但显然SafeConfigParser是一个旧式的类,因此我必须像这样子类化它:
class ConstParser(SafeConfigParser, object): """This is a implementation of the SafeConfigParser that can't write any values. This is to ensure that it can only be filled once and won't get messy with multiple modules writing to it.""" def __init__(self, files, defaults={}): super(ConstParser, self).__init__(defaults) self.read(files) def set(self, *args, **argd): raise NotImplementedError() def write(self, *args, **argd): raise NotImplementedError() def remove_option(self, *args, **argd): raise NotImplementedError() def remove_section(self, *args, **argd): raise NotImplementedError()
如果我没有使用object作为mixin,则调用SafeConfigParser的__init__
方法不起作用.现在,我确信有更好的方法可以做我想做的事情,但现在我很好奇:一般来说这样做可以吗?
我的意思是,我想不出有什么理由为什么这会是一件坏事,但它仍然给我带来不好的感受.他们是否合理,或者我只是偏执狂?