#javascript #python #django #backbonejs
Я работаю с python и javascript, и часто вижу в чужом коде переменные, функции или
методы, которые начинаются с нижнего подчёркивания или обёрнуты в одно или два нижних
подчёркивания. По какому принципу разработчики оборачивают некоторые методы, а некоторые
оставляют без подчёркиваний, мне непонятно. Есть какие-то негласные правила такого
оформления или я плохо читаю документацию?
Ответы
Ответ 1
В питоне: Если переменная начинается с одного подчёркивания (_name), то это переменная, предназначенная для использования только внутри объекта, внутри которого она объявлена. Её всё равно можно вызвать извне, написав object._name Одинарное подчёркивание - это просто указание на то, что переменная относится к внутренней механике объекта и лучше её не трогать без лишней необходимости. Если переменная начинается с двойного подчёркивания, но не имеет подчёркиваний в конце (__name), то эту переменную вы уже не сможете вызвать извне обычным способом object.__name Впрочем, с помощью особого синтаксиса даже к ней можно подобраться извне, но делать это крайне не рекомендуется - уж если программист решил защитить переменную двойным подчёркиванием, то, наверное, у него были причины это сделать. Имена, "обёрнутые" в двойные подчёркивания - это так называемые "магические" или "волшебные" методы. С их помощью реализуются некоторые специальные механики поведения объектов.Ответ 2
В этих языках нет возможности сделать методы и свойства класса по-настоящему приватными, поэтому разработчики договорились добавлять к ним префиксы-андерскоры. Но в некоторых соглашениях это намеренно запрещёно, например, в соглашении airbnb.
Комментариев нет:
Отправить комментарий