У меня есть перечисление и несколько классов с использованием этого перечисления в неизменной переменной класса.from typing import ClassVar, Protocol, Final, Literal
from enum import Enum
class MyEnum(Enum):
A = 0
B = 1
class MyClass1:
type: Final = MyEnum.A
class MyClass2:
type: Final = MyEnum.B
< /code>
Это работает нормально, но я не могу определить протокол, включающий два класса. Оба: < /p>
class MyProtocol1(Protocol):
@property
def type(self) -> MyEnum: ...
class MyProtocol2(Protocol):
type: Final[MyEnum]
< /code>
Не работайте по очевидным причинам.class MyProtocol3(Protocol):
@property
def type(self) -> ClassVar[MyEnum]: ...
class MyProtocol4(Protocol):
@property
@classmethod
def type(cls) -> MyEnum: ...
< /code>
может достичь того, что я хочу, но не разрешен. Я думал об использовании общего с буквальным, который также не вел никуда. У меня заканчиваются идеи.
Подробнее здесь: https://stackoverflow.com/questions/796 ... n-protocol
Как определить неизменную класс в протоколе Python? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Включите настройки в неизменную объект как в Springboot 2, так и в 3 и 3
Anonymous » » в форуме JAVA - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-