⚡ Краткий справочник
class Door: — объявление класса.
self.__code — приватный атрибут (манглирование).
def __is_valid_code(self, code: str) -> bool: — приватный метод-помощник.
datetime.now() — текущее локальное время.
timedelta(minutes=15) — временной интервал.
raise DoorBlockedError("...") — бросить исключение.
try: ... except DoorBlockedError as e: — обработка.
Синтаксис класса
class Door:
'''Electronic door with a numeric code.'''
def __init__(self, code: str) -> None:
self.__code = code
def unlock(self, code: str) -> bool:
if self.__is_valid_code(code):
print("Access granted.")
return True
print("Access denied.")
return False
def __is_valid_code(self, code: str) -> bool:
return code == self.__code
Методы и функции
| Метод/Функция | Описание | Пример |
__init__ | Инициализатор, вызывается при создании объекта | Door("1234") |
self.__is_valid_code | Приватная проверка кода | self.__is_valid_code("1234") |
datetime.now() | Текущее дата/время | from datetime import datetime; datetime.now() |
timedelta(minutes=n) | Интервал для блокировки | timedelta(minutes=15) |
divmod(sec, 60) | Разбивает секунды на минуты и секунды | minutes, sec = divmod(125, 60) |
raise SomeError(...) | Генерация исключения | raise DoorBlockedError("blocked") |
Параметры конструктора
| Параметр | Тип | Описание | По умолчанию |
code | str | Текущий код доступа | — |
max_attempts | int | Максимум неудачных попыток до блокировки | 3 |
block_minutes | float | Длительность блокировки в минутах | 15.0 |
Уровни доступа к атрибутам
| Имя | Соглашение | Доступ извне |
name | Публичный | Да |
_name | Защищённый (соглашение) | Да, но не рекомендуется |
__name | Приватный (манглирование) | Нет (только через _ClassName__name) |