В программе, которую я пишу, я хотел создать 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()
Если я не использовал объект в качестве миксина, вызов метода SafeConfigParser __init__
не сработал. Теперь я уверен, что есть лучшие способы сделать то, что я хочу, но теперь мне любопытно: нормально ли это вообще?
Я имею в виду, я не могу думать ни о какой причине, почему это было бы плохо, но это все равно вызывает у меня плохие чувства. Они оправданы или я просто параноик?