Абстрактные классы Python - как препятствовать реализации?

Я пришел из C # фона, где язык имеет некоторые встроенные "защитить разработчика " функции. Я понимаю, что Python принимает "мы'все взрослые здесь " подход и возлагает ответственность на разработчика, чтобы код продуманно и тщательно.

Тем не менее, Python предлагает соглашения, такие как начальное подчеркивание для частных переменных экземпляра. Мой вопросЕсть ли конкретное соглашение для пометки класса как абстрактного, кроме простого указания его в строках документации? У меня нетМы не видели ничего особенного в руководстве по стилю Python, в котором упоминаются соглашения об именах для абстрактных классов.

Я могу думать о 3 вариантах, но яя не уверен, что онихорошие идеи:

Укажите его в строке документации над классом (может быть пропущено)Используйте начальное подчеркивание в имени класса (не уверен, что это понимается повсеместно)Создатьdef __init__(self): метод на абстрактном классе, которыйвыдает ошибку (не уверен, что это негативно влияет на наследование, например, если вы хотите вызвать базовый конструктор)

Один из них хороший вариант или есть лучший? Я просто хочу убедиться, что другие разработчики знают, что это абстракция, и поэтому, если они пытаются создать его экземпляр, они должны взять на себя ответственность за любое странное поведение.