Стек - объектный подход: продолжение
Посмотрите - мы добавили два подчеркивания перед именем stackList
- ничего больше:
class Stack:
def __init__(self):
self.__stack_list = []
stack_object = Stack()
print(len(stack_object.__stack_list))
Изменение делает программу ошибочной.
Почему?
Если у какого-либо компонента класса есть имя, начинающееся с двух символов подчеркивания (__
), он становится скрытым - это означает, что к нему можно получить доступ только из класса. р>
Вы не можете видеть это из внешнего мира. Вот как Python реализует концепцию инкапсуляции.
Запустите программу, чтобы проверить наши предположения - должно возникнуть исключение AttributeError.