дисциплине кода
Но если вы хотите знать тонкости ООП- вот тут тоже можно подробней, что имеется ввиду под тонкостями?) ООП это надстройка над процедурными языками, концепции ООП можно и в Си выражать (но зачем?). В питоне например нет как синтаксической конструкции как - интерфейс, хотя она есть в джаве например. Плохо ли это? Да нет, опять же из-за природы типизации питона они там просто не нужны. Но если очень хочется есть статическая утиная типизация по типу golang в виде typing.Protocol, что вроде и утиная типизация и статическая, но классы не должны явно утверждать, что они этому протоколу следуют.