Курс 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"
- Поиск шаблона в начале строки
- Поиск самого частого элемента
- Декораторы с @wraps
- Настройка шрифта и цвета в Tkinter
- Профилирование данных с Pandas
- Экспорт данных в файл.
- Логические значения в Python
- Метод rmatmul для обратного матричного умножения
- Непрерывная проверка в Python
- Анализ кода — Python
- Любовь к Python
- Работа с срезами в Python
- Метод __iand__ для пользовательских классов
- Сумма элементов списка
- Хранение переменных в Python.
- PUT запрос для обновления данных
- split() без разделителя
- Лямбда-функции в Python
- Обработка исключений с блоком else
- Создание словарей с defaultdict
- Очистка данных с помощью pandas
- Генераторы в Python
- Оптимизация интернирования строк
- Конвертация изображений в PDF
- Перехват исключений в Python
- Выход из профиля в Django
- Извлечение данных из JSON
- Управление памятью в Python
- Использование defaultdict в Python
- Реверс строки и списка в Python.
- Python Метод sleep() из time
- Строки в Python: апострофы и кавычки
- Библиотека funcy: удобные утилиты
- Счетчик в Python: most_common()
- Метод lt для сортировки объектов
- Фильтрация списка чисел
- Заказ карты Тинькофф Black
- Чтение бинарного файла в Python.
- Копирование объектов в Python
- Переворот строки
- Python: библиотеки и функции
- Работа с множествами в Python
- Сортировка списка по индексам
- Beautiful Soup — извлечение данных из HTML
- Замена переменных в Python















