🔖 Справочник команд и синтаксиса

⚡ Краткий справочник

  • 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")

Параметры конструктора

ПараметрТипОписаниеПо умолчанию
codestrТекущий код доступа
max_attemptsintМаксимум неудачных попыток до блокировки3
block_minutesfloatДлительность блокировки в минутах15.0

Уровни доступа к атрибутам

ИмяСоглашениеДоступ извне
nameПубличныйДа
_nameЗащищённый (соглашение)Да, но не рекомендуется
__nameПриватный (манглирование)Нет (только через _ClassName__name)