170 похожих чатов

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

22 ответов

16 просмотров

чо? __init__ базового класса автоматически не вызывается, если определен __init__ дочернего.

Василий
капец...

а что не так?

Василий
капец...

и да по распространенному мнению __init__ это не конструктор

Василий- Автор вопроса
Alex
и да по распространенному мнению __init__ это не к...

а есть конструктор?, что бы не колхозить везде "перевызов" внутрь?

Василий
а есть конструктор?, что бы не колхозить везде "пе...

почему колхозить-то? Это нормально для питона и на практике глубокая иерархия классов это вероятно минус, а не плюс.

Василий- Автор вопроса
Alex
почему колхозить-то? Это нормально для питона и на...

большая вероятность получить не до конца инициализированый объект

Василий
а есть конструктор?, что бы не колхозить везде "пе...

В питоне нет выделенного метода-конструктора класса. Есть вызов конструктора. То есть когда ты пишешь x = Class() - ты вызываешь конструктор. А при этом процесс конструирования может быть достаточно сложным и неодонозначным. Сначала сработает __call__ метакласса, затем он скорее всего вызовет __new__ и __init__ . Но это можно менять.

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

Может, но не должен. В init дочернего класса всегда нужно вызывать init родительского

Василий
я обескуражен)

Это тебе не плюсы ситанутые

Василий- Автор вопроса
LeeeeT Burgerberg
Это тебе не плюсы ситанутые

после match case я ничему не удивляюсь)

Василий- Автор вопроса
LeeeeT Burgerberg
А что не так с match case?

ну то что он даже гуглится по фразе switch case

Василий
ну то что он даже гуглится по фразе switch case

Ну он аналогичен switch case из других языков, поэтому и гуглится

LeeeeT Burgerberg
А что не так с match case?

В питоне плохо сделано

Василий- Автор вопроса
LeeeeT Burgerberg
Ну он аналогичен switch case из других языков, поэ...

но что бы не как у всех назовем его по другому

Василий
ну то что он даже гуглится по фразе switch case

потому что это и не switch case из других языков

LeeeeT Burgerberg
Что именно плохо?

Нет своего скоупа, делает много неочевидных вещей, матчинг выражений, а не литералов сделан так что весь смысл паттерн матчинга теряется

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

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта