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 ответов

5 просмотров

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

В плане — что определение метода вообще делает внутри 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
Тут за такие советы можно и бан словить...

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

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

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

Если у меня есть такой класс: Object = {} function Object:new(a_name, a_transform, a_color, a_mesh, a_material, a_shader, a_textures) local private = {} private.n...
Cuarno Vile
4
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
зачем же переименовывать ? чтобы кол-во участников возросло или вдруг IBM от этого снова на свифте начнет кодить ? Я не понимаю что страшного в том что свифт гавно, если это т...
Oleh Nerzh
10
здравствуйте. совершаю вот такую вещь: strcpy(line, (char)current_number); где current number — неподписанный шорт, line — массив чаров. ругань следующая: main.c:29:30: error...
Roberto's Ширгозиев
13
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
@NikaBelurgHR Бот? Ассемблер?
КТ315
11
юзеры Jetpack Compose тут?
Qtless Qtless
7
Добрый день! Подскажите, пожалуйста: какими компетенциями нужно обладать, чтобы претендовать на работу эрланг (отдельная благодарность, если про элексир тоже подскажете) разр...
via ☸️ led
20
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Карта сайта