__getattr__.При выполнении
self.first = "new_user" происходит нежелательное поведение, и атрибут first перестанет указывать на первый элемент.Для решения проблемы сделаем атрибуты
first и second read only. Для этого определим магический метод __setattr__. Обратите внимание: __getattr__ вызывается, только если искомого атрибута нет, а метод __setattr__ вызывается каждый раз при присваивании значения атрибуту.При попытке присвоить значение атрибуту проверяется содержится ли он в
shortcut_names. Если содержится, то порождается исключение. Если не содержится, вызывается родительский __setattr__.#codereview
