Невозможно заставить pylance правильно проверить тип переменной в расширенном классе.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно заставить pylance правильно проверить тип переменной в расширенном классе.

Сообщение Anonymous »

Вот моя упрощенная настройка:

Код: Выделить всё

from abc import ABC
from typing import TypeVar
from pydantic import BaseModel

_M = TypeVar("_M", bound=BaseModel)

class A(BaseModel):
a = 1
b = 2
c = 3

class Base(ABC):
cfg_model: type[_M]

def __init__(self):
self.cfg = self.cfg_model()

class ChildA(Base):
cfg_model = A

def run(self):
self.cfg_model  # (variable) model_class: type[_M]
self.cfg        # (variable) cfg: _M

# pylance fails to detect properties in `self.cfg`
self.cfg.a
self.cfg.b
self.cfg.c
Идея состоит в том, что существует несколько классов, расширяющих базовый абстрактный класс, каждый из которых имеет свою собственную модель конфигурации.
Но я не могу этого понять. выясните, как заставить pylance (я использую код Visual Studio) правильно проверить тип self.cfg в методе ChildA run как A.

Подробнее здесь: https://stackoverflow.com/questions/789 ... nded-class
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»