Как сделать поддержку для пользовательского заполнения интеллектуального типа в Python?
Код: Выделить всё
@dataclass
class MyData:
mine: str
yours: str
def col(self, value: str):
return "The column name is: " + value
Я хочу, чтобы аргумент value в col был только одним из «mine» или «yours» ; То есть только одно из имен членов DataClass. И я хочу, чтобы редактор понял это и автозаполнял его, так что, если я сделаю Data.col ('mi ...') , он будет автозаполнять для 'mine'.
Код: Выделить всё
def col(self, value: Literal['mine', 'yours']):
...
Но в идеале не будет повторять все имена поля в определении типа литерального . Кроме того, я хотел бы генерировать больше типов значений (например, добавление суффикса «_now '»: Literal [' Mine ',' yours ',' mine_now ',' yours_now '] ).
В итоге я хотел бы запустить с данных, а также названия. Подсказка, чтобы редакторы и статические контролировщики типа могли это понять.
Можно ли это сделать?
Подробнее здесь:
https://stackoverflow.com/questions/795 ... ss-members