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

А как без него? Либо ассигн, либо хинт

14 ответов

20 просмотров

ну либо метакласс

Jack Bolt- Автор вопроса
quantum super position
ну либо метакласс

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

Jack Bolt
Метакласс в любом случае, вопрос в другом -- оно ж...

class Dict(dict): def __missing__(self, key): self[key] = key class Meta(type): @classmethod def __prepare__(metacls, name, bases): return Dict() class DumbEnum(metaclass=Meta): VALUE ANOTHER_VALUE print(DumbEnum.VALUE)

quantum super position
class Dict(dict): def __missing__(self, key): ...

Если сделать DumbEnum без значений, от него можно будет наследоваться же?

Arkady Strugatsky
Если сделать DumbEnum без значений, от него можно ...

Но ты не сможешь сделать множественное наследование от StrEnum и DumbEnum, если что

Jack Bolt- Автор вопроса
quantum super position
class Dict(dict): def __missing__(self, key): ...

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

quantum super position
м?

Я о том что юзеру не обязательно знать что при создании енума используется какой-то там метакласс. Гораздо важнее ему знать что его енум это потомок абстрактного DumbEnum

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

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

а через 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
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта