чо? __init__ базового класса автоматически не вызывается, если определен __init__ дочернего.
а что не так?
и да по распространенному мнению __init__ это не конструктор
а есть конструктор?, что бы не колхозить везде "перевызов" внутрь?
почему колхозить-то? Это нормально для питона и на практике глубокая иерархия классов это вероятно минус, а не плюс.
большая вероятность получить не до конца инициализированый объект
В питоне нет выделенного метода-конструктора класса. Есть вызов конструктора. То есть когда ты пишешь x = Class() - ты вызываешь конструктор. А при этом процесс конструирования может быть достаточно сложным и неодонозначным. Сначала сработает __call__ метакласса, затем он скорее всего вызовет __new__ и __init__ . Но это можно менять.
Может, но обычно конструктор базового класса не должен делать того что не предполагает базовый конструктор
Может, но не должен. В init дочернего класса всегда нужно вызывать init родительского
Это тебе не плюсы ситанутые
после match case я ничему не удивляюсь)
А что не так с match case?
ну то что он даже гуглится по фразе switch case
Ну он аналогичен switch case из других языков, поэтому и гуглится
В питоне плохо сделано
Что именно плохо?
но что бы не как у всех назовем его по другому
потому что это и не switch case из других языков
Нет своего скоупа, делает много неочевидных вещей, матчинг выражений, а не литералов сделан так что весь смысл паттерн матчинга теряется
гуглу расскажи)
Обсуждают сегодня