Правильно ли я понимаю что абстрактные классы в питоне нужны,

что бы указывать на то, что у наследника абстрактного класса, обязательно должен быть имплементирован тот или иной метод?

python russian programming

16 ответов

Да, все что в абстрактном определено, должно быть реализовано в наследниках. По факту это интерфейс, если не ошибаюсь

чтобы реализовать часть методов, а часть - нет

quantum super position- Автор вопроса
quantum super position
что то всё стало запутаннее

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

quantum super position- Автор вопроса
Tishka17
абстрактный класс - это класс, который невозмонжо ...

Угу. То есть это прямой посыл разрабу - наследуешься от абстрактного класса, будь добр, имплементируй весь его функционал(методы)

quantum super position
Угу. То есть это прямой посыл разрабу - наследуешь...

эм, это прямой посыл - вот тебе заготовка, можешь отнаследоваться

quantum super position
Угу. То есть это прямой посыл разрабу - наследуешь...

> весь его функционал Там ведь нет функционала

quantum super position
угу, понял

https://github.com/Tishka17/aiogram_dialog/blob/develop/aiogram_dialog/widgets/kbd/base.py вот пример обычного абстрактного класса (хоть он и не помечен ABC)

quantum super position- Автор вопроса
Tishka17
https://github.com/Tishka17/aiogram_dialog/blob/de...

А почему в нём не отнаследоваться от ABC? я вижу raise NotImplementedError у тебя, и довольно часто вижу, в датакласс_фактори тоже видел. Что не так в наследовании от ABC?

quantum super position
А почему в нём не отнаследоваться от ABC? я вижу r...

ABC ничего по факту не делает кроме проверки что ты не забыл переопределить метод

Tishka17
ABC ничего по факту не делает кроме проверки что т...

А проверку на то, что инстанс нельзя создать?

Artem
А проверку на то, что инстанс нельзя создать?

ну он проверяет что ты переопределил при создании инстанса

quantum super position- Автор вопроса
Tishka17
ABC ничего по факту не делает кроме проверки что т...

https://github.com/Tishka17/dataclass_factory/blob/49c45f733caa7d0c1b753df575703b7fdd53f757/dataclass_factory/common.py#L8 Например здесь, почему не ABC?

quantum super position- Автор вопроса

Похожие вопросы