Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билеты ВвИТ, СиСС, Экзамен 3 сем, 2021.docx
Скачиваний:
33
Добавлен:
21.01.2022
Размер:
41.28 Кб
Скачать

17. Работа со __slots__ в python. Зачем нужен данный инструмент, какие задачи выполняет, какие ограничения накладывает на объект класса и какие преимущества дает.

Атрибут __slots__ позволяет явно объявить элементы данных и запрещать создание словаря. Он ограничивает допустимый набор имен атрибутов объекта только перечисленными именами. При использовании атрибута __slots__ атрибуты хранятся в заранее определенных местах в массиве. Таким образом каждый атрибут слота является объектом дескриптора, который знает, как установить/получить каждый атрибут с помощью индекса массива. Преимуществом атрибута __slots__ является более быстрый доступ к атрибутам.

18. Реализация сокрытия полей и методов в python. Общепринятые соглашение о наименовании. Преимущества и недостатки такого подхода.

Инкапсуляция — это заключение данных и функционала в оболочку. В объектно-ориентированном программировании в роли оболочки выступают классы: они не только собирают переменные и методы в одном месте, но и защищают их от вмешательства извне (сокрытие).

Python 3 предоставляет 3 уровня доступа к данным:

  • публичный (public, нет особого синтаксиса, publicBanana);

  • защищенный (protected, одно нижнее подчеркивание в начале названия, _protectedBanana);

  • приватный (private, два нижних подчеркивания в начала названия, __privateBanana).

Преимущества сокрытия данных:

  • Это повышает защиту от хакеров, которые не могут получить доступ к важным данным.

  • Это помогает программисту от неправильного связывания с поврежденными данными.

  • Обеспечивает высокую безопасность, которая предотвращает повреждение и нарушение данных, скрывая их от общественности.

Недостатки сокрытия данных:

  • Иногда программистам нужно написать лишнее право залога кода.

  • Сокрытие данных предотвращает связь, которая действует как связь между видимыми и невидимыми данными, делая объект быстрее.

  • Заставляет программистов писать дополнительный код, чтобы скрыть важные данные от обычных пользователей.

Основной принцип соглашения об именах в Python - имена, которые видны пользователю как открытые части API, должны соответствовать соглашениям, которые отражают использование, а не реализацию.

Соглашение об именах содержит следующие пункты:

  • Никогда не используются символы l (строчная L), O (заглавная o) или I (заглавная i) для переменных из одного символа. В некоторых шрифтах эти символы неотличимы от цифр один и ноль.

  • Символы должны быть совместимы с ASCII

  • Модули должны иметь короткие строчные имена, могут быть использованы подчеркивания, если это улучшает читабельность.

  • Имена классов пишутся по технике CapWords (первые буквы слова - заглавные)

  • Имена типов переменных должны использовать CapWords

  • Имена исключений задаются по принципам имен классов. Если исключение является ошибкой, то оно должно содержать суффикс Error

  • Имена функций должны быть строчными, слова разделяются подчеркиванием. Допускается mixedCase (первое слово - строчное, остальные начинаются с большой буквы), когда этот стиль уже преобладает.

  • Имена методов и переменных экземпляра класса используют правила написания функций.

  • Константы пишутся заглавными буквами с подчеркиваниями между слов.