Введение в язык Питон

773123a3

Закрытые переменные.


В Питоне пока очень ограниченная поддержка закрытых(private) элементов класса, то есть элементам, доступным только членам данного класса. Применение таких элементов соответствует принципу сокрытия информации и исключает бесконтрольное изменение важных полей класса вне его. Рассмотрим механизм таких элементов.

Если вы объявляете какой-либо элемент, начиная его с двойного подчёркивания, то он автоматически становится закрытым и обращение к нему вне класса вызывает синтаксическую ошибку, в то время как обращение через self является приемлемым:

>>> class Test2: ... __foo = 0 ... def set_foo(self, n): ... if n > 1: ... self.__foo = n ... print self.__foo ... >>> x = Test2() >>> x.set_foo(5)

5

>>> x.__foo Traceback (most recent call last): File "<interactive input>", line 1, in ? AttributeError: Test2 instance has no attribute '__foo'

Кроме этого закрытой является также переменная, содержащаяся в любом модуле __dict__.



Содержание раздела