Я говорил что аттрибут подставляется при его встрече в коде, а не в before_compile. Поэтому изменить аттрибут внутри функции ниже её объявления невозможно
в примере нигде не указано что аттрибуты обязательно должны быть раскиданы по коду, я и написала что для конкретно этого примера можно опустить before_compile
в примере нигде не указано что аттрибуты обязательно должны быть раскиданы по коду, я и написала что для конкретно этого примера можно опустить before_compile