почему Python не имеет модификатора доступа? И какие есть альтернативы в Python?

почему в python нет модификатора Access, как в c #, java, т.е. public, private и т. д., каков альтернативный способ инкапсуляции и сокрытия информации в python.

 Daniel Roseman26 мар. 2014 г., 10:17
Потому что Python - это не C # или Java. Почему эти языки не имеют динамических типов и значительных пробелов? Потому что они не Питон.
 Pablo Francisco Pérez Hidalgo26 мар. 2014 г., 10:24
@DanielRoseman Я согласен, но я понимаю шок, который это может вызвать у человека, который привык к традиционным языкам ОО, таким как Java или C ++. Я был шокирован, когда начал изучать питон.
 mallardz24 июл. 2014 г., 20:14
@DanielRoseman С другой стороны, ваш ответ здесь:programmers.stackexchange.com/questions/91799/... было очень информативно!
 Marius26 мар. 2014 г., 10:09
УвидетьВот.
 mallardz24 июл. 2014 г., 19:54
@DanielRoseman Вопрос не должен быть неявной критикой, иначе какой смысл этого сайта? Мне интересно узнать причину принятия решений для лучшего понимания языков программирования и дизайна. Я думаю, что у Гвидо было лучшее объяснение при разработке Python, отличного от «это не Java».

Ответы на вопрос(2)

самом деле приватными в python) с идентификаторами, которые позволяют легко определить, что эти члены не должны использоваться извне.

Например:

class RedmineWriter:

    __server = None
    __connected = False
...
...
...

Однако, если пользователь класса действительно хочет изменить эти атрибуты, у него не будет проблем. Это его ответственность не делать этого.

Смотреть на:http://docs.python.org/2/tutorial/classes.html#tut-private

 user39576026 мар. 2014 г., 10:37
Двойные начальные подчеркивания вызывают искажение имен, что полезно, если вы хотите, чтобы подклассы не имели дело с этими членами. Если нет подклассов, или они должны взаимодействовать с этими членами (например,protected во многих статических языках),не замужем Подчеркивание является более привычным.
Решение Вопроса

Википедия:

[Python] имеет ограниченную поддержку частных переменных, использующихискажение имени, УвидетьРаздел "Классы" учебника для деталей, Однако многие пользователи Python не чувствуют необходимости в закрытых переменных. Лозунг«Мы все согласные взрослые здесь» используется для описания этого отношения. Некоторые считают, что сокрытие информации не является пифоническим, поскольку предполагает, что данный класс содержит неэстетичные или плохо спланированные внутренние элементы. Однако самым сильным аргументом в пользу искажения имен является предотвращение непредсказуемой поломки программ: введение новой общедоступной переменной в суперкласс может привести к поломке подклассов, если они не используют «частные» переменные.

Из учебника:Как и в случае с модулями, классы в Python не ставят абсолютного барьера между определением и пользователем, а скорее полагаются на вежливость пользователя, чтобы не «взломать определение».

То же чувство описано вМы все взрослые абзацАвтостопом по Python!

Ваш ответ на вопрос