14446
Вопросы про Python для чайников. Cпам и троллинг неприемлем. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Правила группы: https://t.me/ru_python_beginners/1649981
можно постучать в кложуры, но там тоже будет доступ
Читать полностью…
например можно getattr на объекте сломать, но обход ессесно будет
Читать полностью…
Вот, мне важно было это услышать. Потому что я думал, что я просто не могу додуматься как это сделать на python
Читать полностью…
это часть философии языка, we are all grown ass adults
Читать полностью…
Вот нашел два определения
Инкапсуляция — это объединение данных и методов для работы с ними в один «контейнер» (класс). Она отвечает за структурирование кода.
Сокрытие (Information Hiding) — это ограничение прямого доступа к внутренним компонентам этого контейнера извне. Оно отвечает за безопасность и изоляцию деталей реализации.
То есть исходя из определения инкапсуляция это просто положить все в одну капсулку/контейнер, чтобы была структура
В моем коде не было сокрытия, но в python как делают сокрытие?
тебе надо понимать цели этих все операций:
1. есть желание защититься от случайных некорректных действий программиста, дернувшего не то
2. есть желание дать себе гибкость в изменении реализации, ограничивая то что может юзать другой программист
3. есть желание дать красивый понятный интерфейс
4. есть желание исключить конфликты имен, полученных из разных мест (то есть оставить доступ к каждой переменной/функции, хотя называются вроде одинаково)
5. есть желание данные и функции работы с ними передавать вместе одной пачкой, чтобы менять можно было проще
интеншон манглинга это переименовать букву, чтобы она не пересеклась
Читать полностью…
Я читал, что такое манглинг. То есть получается, сокрытие это буквально невозможность достать переменную. В моем коде ее можно достать по специальному имени _User__credit_num, а значит это не сокрытие, мои рассуждения верны?
Читать полностью…
Вот я накалякал, здесь инкапсуляция или сокрытие, потому что я плаваю в этом. Интересует только на примере Python языка
Читать полностью…
как же я ненавижу автопереводы в доке. Вот нахуя они так делают?
Читать полностью…
точнее это уже финт поверх, а не напрямую имеющееся сокрытие
Читать полностью…
#define private publicЧитать полностью…
#include "злостный_хидер"
#undef private
Ну я имею ввиду по канону делать как, без всяких костылей
Читать полностью…
сделать своё можно, но костыльно и нахуй не нужно
Читать полностью…
у нас есть стандарт как именовать интерналы. их лучше не трогать, если не хочешь заработать проблем. всё.
Читать полностью…
к инкапсуляции есть второе определение с выделением публичного интерфейса, но по сути одно предполагает другое
Читать полностью…
все эти вещи можно реализовывать по разному, в зависимости от того какие уже реализации есть в языке
Читать полностью…
Да, типо если в дочернем классе кто-то захочет создать такую же переменную, он сможет ее создать без всяких проблем. Потому что python автоматически даст разные имена
Читать полностью…
да с этими терминами постоянно какие-то споры, все всех запутали
Читать полностью…
Про манглинг я понял, мои мысли относительно моего кода по теме сокрытия верны или нет?
Читать полностью…
манглинг существует чтобы побеждать кроссинг имен, механизмы ограничения доступа и сокрытия существуют чтобы прикрывать доступ
Читать полностью…
здесь нет сокрытия, манглинг это не сокрытие и не ограничение доступа
Читать полностью…
может ли существовать сокрытие в принципе в компьютерах по фон Нейману — вопрос философский
Читать полностью…
Тишка уже который год рассказывает что в плюсах нет сокрытия
Читать полностью…
Плюсы в принципе не дают сокрытия. А с темплейтами ещё хуже, ты ещё и реализацию методов светишь.
Поэтому там есть явное ограничение доступа, чтобы хоть как-то это компенсировать