masterspammer (masterspammer) wrote,
masterspammer
masterspammer

Category:
Задумался тут о странном - python позволяет разными способами перопределить иерархию наследования, так сегодня я делал наследование, где в основе лежат два базовых класса... На самом деле-то всегда один, но какой именно - зависит от параметров (один из них - файл конфигурации, так что свобода маневра есть). С одной стороны, создать абстрактный класс-фабрику, конструктор которого создает экземпляры конкретных классов-потомков - точно возможно, но есть сомнения - можно ли от такого счастья наследоваться дальще. Насколько помню, класс-предок это свойство именно класса, а не объекта и код не может работать в принципе. С другой стороны, ему просто не хватало одного параметра скорее всего по недосмотру и запустить его (пусть даже удалив этот параметр с корнем) точно можно, пусть сегодня я и предпочел поспешить на маршрутку.
Другое дело, как будет работать такой кадавр - будут ли наследникам доступны методы потомка - ради чего наследование и делалось? Конечно можно сделать и более топорно, создав базовый клас фасадом для спрятанного в нем драйвера-реализации, но есть и вторая проблема. Не получается сделать низкоуровневый драйвер ничего не знающим о тех классах, что будут его использовать - в разных высокоуровневых классах разный достаточно высокоуровневый код, достаточно зависящий и от драйвера и от предметной области, и я пока не придумал, как избежать декартова произведения.
Тут или делать методы в стиле "подготовить обучающие/тестовые данные в формате класса A/B/C под драйвер 1/2/3" или делать много низкоуровневых драйвероспецифичных методов. Второе вроде как правильнее, но тогда типы передаваемых параметров и возвращаемых результатов будут тоже зависеть от драйвера. Для языка с динамической типизацией это невелика беда, но как общее решение - так себе. Неаккуратненько как-то!
Пока еще думаю.
---- наутро --
Да! Верно говорят, что с проблемой нужно переспать - скорее всего самым интересным способом будет готовит данные в общем (numpy) формате, преобразуя перед самым использованием, а иногда и преобразовывать не нужно будет.
Tags: python, Философское, ХочетсяСтранного
Subscribe

  • Наши помойки всё богаче и богаче

    Позавчера думал прогулятся с другом, нашёл по дороге динамики (прогулка вышла чуть крюком - занести найденное). Пара 10 ГД-30Б, на одном промят…

  • (no subject)

    Раздраконил трансформатор от микроволновки. Теперь есть магнитопровод с первичкой и куча медной сечки. Проводом из ВВГ намотал 5 витков, получил 4.5…

  • Динамики и т.д.

    Когда-то выбрал условно лучшую пару подвижек и отложил весь набор динамикового конструирования. Позавчера достал снова. Собрал сегодня ещё один…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments