Я думал это канонический вызов, а это работает только когда переопределён? Сплошная магия и нычки, конечно.
andylars 28.06.2015 13:20
/ 28.06.2015 13:25
Дело в том, что я пишу код методов класса заранее, и не надеясь на однозначный доступ к глобальному окружению по короткому имени в будущем.
Это возникло в результате того, что однажды я словил проблему доступа к переменной, находящейся в auto.p (MAIN) из класса, при этом она не была перекрыта, и помогло "каноническое обращение",
$MAIN:glob_var
После этого случая, я стараюсь более прилежно обращаться с видимостью, поэтому
к переменным внутри класса, я всегда обращаюсь, как $self.VarObj
локальные переменные в рамках всего класса для обращения извне - изолировать в Parser'e нельзя, поэтому
я просто делаю _var чтобы случайно не наступить не туда.
тоже касается и локальных внутри методов
Я не говорю, что это проблема, и использовать одноименные переменные с названиями встроенных классов, но когда ожидаешь
как бы единообразности хотя бы на уровне синтаксиса вызовов, а
тут сплошная магия.
Просто вопрос:
Почему $MAIN:obj.field[value] <- работает
а $MAIN:obj:field[value] <- не работает только потому, что исторически так сложилось и синтаксис так не умеет?