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

@Dataclass Class B: if TYPE_CHECKING:

def __init__(self):
...
@dataclass
class A:
b: int
if TYPE_CHECKING:
def __init__(self, a: int):
...

PyCharm ругается, что в A.__init__ нужно вызвать super().__init__, но он же находится в if TYPE_CHECKING. Надо ли это делать?

16 ответов

21 просмотр

Ты делаешь что-то странное...

В плане — что определение метода вообще делает внутри if TYPE_CHECKING: и зачем он тебе?

evle
В плане — что определение метода вообще делает вну...

для отображения аргументов датакласса

evle
screenshot Нафига козе баян?

но в таком случае я не увижу сразу типы аргументов

Иван Кирпичников 🇷🇺
но в таком случае я не увижу сразу типы аргументов

Я вообще разницы в поведении IDE не вижу между A и B на этом скрине. И уж точно не вижу повода писать по такому поводу лишний инит.

Выкинуть

Tishka17
Выкинуть

что именно?

Иван Кирпичников 🇷🇺
что именно?

if type checking и кастомные иниты. Суть датакласса в том, что инит и другие методы генарируются

Мне лень что то думать Вот тебе ответ от клайда Sure, here's the corrected code: from dataclasses import dataclass from typing import TYPE_CHECKING if TYPE_CHECKING: class B: def init(self): ... else: B = object @dataclass class A: b: B if TYPE_CHECKING: def init(self, a: int): ... I've moved the conditional if TYPE_CHECKING outside the classes and added an else statement to assign B to object when type checking is not enabled. This ensures that the code is valid both during type checking and at runtime.

Ilya Steoanov
Мне лень что то думать Вот тебе ответ от клайда S...

Тут за такие советы можно и бан словить...

evle
Тут за такие советы можно и бан словить...

Боятся бы бана в лес не ходить😁

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

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

а через 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
Карта сайта