Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
1 / 1 / 0
Регистрация: 14.12.2018
Сообщений: 20

Модификаторы доступа и инкапсуляция в python

22.01.2022, 21:06. Показов 4082. Ответов 6

Студворк — интернет-сервис помощи студентам
Меня очень сильно интересует вопрос модифакторов доступа и темы инкапуляции в целом в python. Изучая информацию я увидел огромное множество примеров сокрытия данных, например, использование __private, _protected. Но у меня сложилось впечатление, что все не так однозначно работает как в java или c++. То есть на практике программисты не делают нужные атрибуты и методы private, а находят какие то другие решения или вообще не заморачиваются))) Возможно , в следствии не строгой типизации
Так вот коротко вопрос: "каким образом лучше всего реализовать сокрытие данных в python? На практике а не в теории"
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.01.2022, 21:06
Ответы с готовыми решениями:

Модификаторы доступа
Значееет сижу-сижу и разбираюсь со всеми модификаторами доступа.. Всё, конечно, супер, но в контексте есть слово...

Модификаторы доступа
Привет, как для нескольких полей класса задать один мод. доступа?

Модификаторы доступа
На дом задали построить таблицу с модификаторами доступа (из каких классов, пакетов видны переменные с модификаторами доступа). Нужно...

6
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
22.01.2022, 21:38
Цитата Сообщение от piratikcooldog Посмотреть сообщение
у меня сложилось впечатление, что все не так однозначно работает как в java или c++.
Это вообще не работает как Java и С++. В Python инкапсуляция это только лишь упаковка данных (и поведения) в классы. Вопрос же приватности доступа это просто соглашение: "у нас в клубе джентельменам принято верить на слово".

Пример соглашения : если на ящике написано "не лезь - убъёт", значит не надо в него лезть.
Если метод или свойство начинаются с двух нижних подчеркиваний, значит не нужно их трогать.
Если попробуешь обратиться к такому свойству - получишь ошибку. Но чисто технически это очень легко можно обойти, если захочешь нарушить джентельменское соглашение.

Добавлено через 2 минуты
Цитата Сообщение от piratikcooldog Посмотреть сообщение
"каким образом лучше всего реализовать сокрытие данных в python? На практике а не в теории"
ты уже сам себе ответил:использование __private, _protected.
0
155 / 120 / 38
Регистрация: 12.12.2013
Сообщений: 374
22.01.2022, 22:26
Я использовал модуль accessify: https://pypi.org/project/accessify/

Но в целом особой надобности в этом нет.
0
 Аватар для Aviz__
2736 / 2046 / 506
Регистрация: 17.02.2014
Сообщений: 9,462
23.01.2022, 10:21
Цитата Сообщение от piratikcooldog Посмотреть сообщение
каким образом лучше всего реализовать сокрытие данных в python?
не вызывать эти данные (поля классов) и их обработчики (методы) имеющие начало имени "__".
0
155 / 120 / 38
Регистрация: 12.12.2013
Сообщений: 374
23.01.2022, 10:38
Цитата Сообщение от Aviz__ Посмотреть сообщение
не вызывать эти данные (поля классов) и их обработчики (методы) имеющие начало имени "__".
Ну 2 подчеркивания и так проблематично вызвать. Обычно при переходе с других языков вызывает проблемы protected. По крайней мере у меня после PHP так и было.
0
 Аватар для Aviz__
2736 / 2046 / 506
Регистрация: 17.02.2014
Сообщений: 9,462
23.01.2022, 11:13
Цитата Сообщение от Treasure Hunter Посмотреть сообщение
так проблематично вызвать
если только клавиша "-" выскочила))
0
155 / 120 / 38
Регистрация: 12.12.2013
Сообщений: 374
23.01.2022, 11:55
Цитата Сообщение от Aviz__ Посмотреть сообщение
если только клавиша "-" выскочила))
Не, то есть клиент ни разу не задумается, зачем он вводит <classname>.__private_name? Бывают, конечно, упоротые, но не до такой же степени. И, что самое главное, не в таком количестве, что стоит на это обращать внимание.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.01.2022, 11:55
Помогаю со студенческими работами здесь

Модификаторы доступа
Приветствую! Начал разбираться с созданием форточек, и обратил внимание на следующую &quot;мелочь&quot;: public class...

Модификаторы доступа
Помогите реализовать механизм задания (Public/Private/Protected) атрибутов класса в Python, не используя inspect. Приветствуются любые идеи...

Модификаторы доступа
Есть разница (и какая, если есть), между полями input и output? Если разницы нет, то как писать предпочтительней? internal class...

модификаторы доступа
к данным помеченным как private есть доступ у подкласса? Добавлено через 4 минуты разобрался, есть доступ к таким данным на чтение,...

Модификаторы доступа
using System; using System.Collections.Generic; /// &lt;summary&gt;Типы и методы различных данных.&lt;/summary&gt; namespace Data { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru