Курс Python → Защита данных в Python
Python имеет функцию под названием «name mangling», которая позволяет изменять имена атрибутов класса или методов путем добавления двойного подчеркивания «__» в начале их имен. Это делается для того, чтобы предотвратить случайное переименование атрибутов в подклассах, которые будут унаследованы суперклассом. Таким образом, «name mangling» обеспечивает защиту от конфликтов имен в классах и их подклассах.
Пример использования «name mangling» в Python:
class MyClass:
def __init__(self):
self.__private_attribute = 10
def __private_method(self):
return "This is a private method."
obj = MyClass()
print(obj.__private_attribute) # Ошибка: AttributeError: 'MyClass' object has no attribute '__private_attribute'
print(obj.__private_method()) # Ошибка: AttributeError: 'MyClass' object has no attribute '__private_method'
В данном примере, атрибуты __private_attribute и __private_method являются «скрытыми» и не могут быть доступны извне класса MyClass. Если попытаться обратиться к ним напрямую, возникнет ошибка AttributeError. Это демонстрирует, как «name mangling» обеспечивает защиту от несанкционированного доступа к атрибутам и методам класса.
Таким образом, использование «name mangling» в Python позволяет обеспечить безопасность и защиту данных в классах, предотвращая случайное переименование атрибутов и методов в подклассах. Это помогает избежать конфликтов имен и обеспечивает четкую структуру классов в программе.
Важно помнить, что «name mangling» не делает атрибуты или методы полностью приватными в Python. Они все равно могут быть доступны через специальный синтаксис. Однако, использование этой функции помогает организовать код и избежать путаницы в именовании.
Другие уроки курса "Python"
- Создание Radio кнопок в tkinter
- Функция rsplit() в Python
- Капитализация строк
- Преобразование букв в нижний регистр
- Настройка шрифта и цвета в Tkinter
- Повторение элементов в Python
- Работа с кортежами
- Метод join для объединения строк
- Метод get для словаря
- Просмотр внешнего файла в Python
- Работа с словарями в Python
- CSV строка разделение в Python
- Python Calendar Usage
- Установка и использование Telegram API в Python
- Повторение элементов в Python
- Разделение строки с помощью split()
- Представление бесконечности в Python
- Генераторы по генератору
- Вызов внешних программ в Python с помощью sh
- Работа со строками в Python.
- split() — разделение строки
- Работа со строками в Python
- Работа с CSV файлами в Python
- Python: Фильтрация списков с помощью filter()
- Оптимизация сравнения в Python
- Поиск email
- Копирование в Python
- Поиск элементов BeautifulSoup
- Функция eval() в Python
- Копирование списков в Python
- Удаление ссылок в Python
- Правила именования переменных
- Списки в Python
- Работа с контекст-менеджером «with»
- Метод split() для разделения строк
- Проверка списка: any() и all()
- Управление асинхронными задачами с помощью Semaphore
- Генераторы в Python
- Управление асинхронными задачами на Python.
- Форматирование объектов с модулем pprint
- JMESPath в Python
- Работа с множествами в Python
- Переменные класса и экземпляра
- Defaultdict в Python
- Библиотека Emoji: использование смайлов в Python
- Декораторы в Python
- Показ всплывающих окон Tkinter















