Найти в Дзене

День 74. Обновление всех полей в документе. Инкапсуляция, атрибуты и свойства.

Технический писатель. Word. 1. Обновление всех полей в документе Нажмите клавиши CTRL+A. Чтобы не забыть обновить одержимый документ перед печатью, Word автоматически обновлять поля перед печатью. Откройте меню Файл > Параметры > Экран, а затем в разделе Параметры печати, установите флажок Обновлять поля перед печатью. При обновлении поля могут возникнуть проблемы, если элемент, на который оно ссылается, удален. Ссылки и закладки также могут указывать на несуществующие страницы. Python . Инкапсуляция, атрибуты и свойства. По умолчанию атрибуты в классах являются общедоступными, а значит, что из любого места программы мы можем получить атрибут объекта и изменить его. Но в данном случае мы можем, к примеру, присвоить возрасту или имени человека некорректное значение, например, указать отрицательный возраст. Подобное поведение нежелательно, поэтому встает вопрос о контроле за доступом к атрибутам объекта. С данной проблемой тесно связано понятие инкапсуляция. Инкапсуляция является фунд
Оглавление

Технический писатель. Word.

1. Обновление всех полей в документе

Нажмите клавиши CTRL+A.

  1. Нажмите клавишу F9.
  2. Если в документе содержатся таблицы с полями или формулами, может потребоваться выбрать каждую из них отдельно, а затем нажать клавишу F9.

Чтобы не забыть обновить одержимый документ перед печатью, Word автоматически обновлять поля перед печатью. Откройте меню Файл > Параметры > Экран, а затем в разделе Параметры печати, установите флажок Обновлять поля перед печатью.

-2

При обновлении поля могут возникнуть проблемы, если элемент, на который оно ссылается, удален. Ссылки и закладки также могут указывать на несуществующие страницы.

Python . Инкапсуляция, атрибуты и свойства.

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

-3

Но в данном случае мы можем, к примеру, присвоить возрасту или имени человека некорректное значение, например, указать отрицательный возраст. Подобное поведение нежелательно, поэтому встает вопрос о контроле за доступом к атрибутам объекта. С данной проблемой тесно связано понятие инкапсуляция. Инкапсуляция является фундаментальной концепцией объектно-ориентированного программирования. Она предотвращает прямой доступ к атрибутам объекта из вызывающего кода. Касательно инкапсуляции непосредственно в языке программирования Python скрыть атрибуты класса можно сделав их приватными или закрытыми и ограничив доступ к ним через специальные методы, которые еще называются свойствами. Изменим выше определенный класс, определив в нем свойства:

-4

Для создания приватного атрибута в начале его наименования ставится двойной прочерк: self.__name. К такому атрибуту мы сможем обратиться только из того же класса. Например, присвоение значения этому атрибуту ничего не даст:

-5

Потому что в данном случае просто определяется динамически новый атрибут __age, но это не имеет ничего общего с атрибутом self.__age. А попытка получить его значение приведет к ошибке выполнения (если ранее не была определена переменная __age):

-6

Однако все же нам может потребоваться устанавливать возраст пользователя извне. Для этого создаются свойства. Используя одно свойство, мы можем получить значение атрибута:

-7

Данный метод еще часто называют геттер или аксессор. Для изменения возраста определено другое свойство:

-8

Данный метод еще называют сеттер или мьютейтор (mutator). Здесь мы уже можем решить в зависимости от условий, надо ли переустанавливать возраст. Необязательно создавать для каждого приватного атрибута подобную пару свойств. Так, в примере выше имя человека мы можем установить только из конструктора. А для получения определен метод get_name.