Мне интересно, почему я получаю здесь несовместимые типы при назначении?
from typing import cast
import pyvisa
from pyvisa.constants import InterfaceType
from pyvisa.resources import GPIBInstrument, TCPIPInstrument
class Instrument:
resource_manager = pyvisa.ResourceManager()
def __init__(self, resource: str):
self.resource = self.resource_manager.open_resource(resource_name=resource)
if self.resource.interface_type == InterfaceType.tcpip:
self.instance: TCPIPInstrument = cast(TCPIPInstrument, resource)
elif self.resource.interface_type == InterfaceType.gpib:
self.instance: GPIBInstrument = cast(GPIBInstrument, resource)
else:
raise TypeError(f"Unsupported resource interface type: {self.resource.interface_type}")
При присваивании выдает несовместимые типы (выражение имеет тип «GPIBInstrument», переменная имеет тип «TCPIPInstrument»)
self.instance правильно получает экземпляр типа: TCPIPInstrument | GPIBInstrument в vscode.
Я использую Python 3.11.3 и mypy 1.2.0.
Ссылка на суть с тем же проблема, но с немного другим кодом, так как мне не удалось установить pyvisa на игровой площадке.
Обнаружил некоторые проблемы в коде из комментариев, вот более правильный код, но все же с та же проблема.
from typing import cast
import pyvisa
from pyvisa.constants import InterfaceType
from pyvisa.resources import GPIBInstrument, TCPIPInstrument
class Instrument:
resource_manager = pyvisa.ResourceManager()
def __init__(self, resource_name: str):
self.resource = self.resource_manager.open_resource(resource_name=resource_name)
if self.resource.interface_type == InterfaceType.tcpip:
self.instance = cast(TCPIPInstrument, self.resource)
elif self.resource.interface_type == InterfaceType.gpib:
self.instance = cast(GPIBInstrument, self.resource)
else:
raise TypeError(f"Unsupported resource interface type: {self.resource.interface_type}")
Подробнее здесь: https://stackoverflow.com/questions/760 ... s-in-alter
Mypy – несовместимые типы при назначении при назначении разных значений в альтернативных ветвях ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Mypy говорит «несовместимые типы в назначении» при назначении из множественного наследства
Anonymous » » в форуме Python - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-
-
-
«Несовместимые типы в назначении» при назначении из множественного наследства в Mypy
Anonymous » » в форуме Python - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-