Я хочу иметь возможность создать класс (в Python), который после инициализации __init__
не принимает новые атрибуты, но принимает модификации существующих атрибутов. Есть несколько способов взлома, которые я вижу, чтобы сделать это, например, с помощью метода __setattr__
, такого как
def __setattr__(self, attribute, value):
if not attribute in self.__dict__:
print "Cannot set %s" % attribute
else:
self.__dict__[attribute] = value
и затем редактирование __dict__
непосредственно внутри __init__
, но мне было интересно, есть ли «правильный» способ сделать это?