Как ввести подсказку для атрибута, которому можно присвоить значение супертипа?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как ввести подсказку для атрибута, которому можно присвоить значение супертипа?

Сообщение Anonymous »

Я работаю с библиотекой C++, созданной для Python.
Библиотека определяет классы, каждый из которых имеет множество атрибутов, аналогичных стандартным типам Python, но с несколькими дополнительными методами. например, в заглушках Python «String» наследуется от стандартного «str»

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

class String(str):
def get_key(self) -> str:
"""Return the key for this property."""
...
и тогда класс может иметь атрибуты типа «String», например

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

class Asset:
name: String = ''
...
Код C++ поддерживает получение и установку значений этих атрибутов с использованием обычных типов Python. Так что я могу

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

my_asset.name = 'Foo'
print(my_asset.name) # Foo
print(type(my_asset.name))  # String
print(my_asset.name.get_key())  # name
Однако проверке типов Python (в данном случае Pylance) не нравится первая строка выше. Там написано:

Невозможно присвоить атрибуту "имя" для класса "Актив".
"str" ​​несовместим с " String" PylancereportAttributeAccessIssue
(переменная) имя: str

Есть ли способ изменить мои заглушки Python таким образом что специалисты по проверке типов поймут, что String совместим с str, а не просто наследуется от него?

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как можно группировать перечисления с помощью супертипа?
    Anonymous » » в форуме JAVA
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Собственный метод MainApplication.java не переопределяет и не реализует метод из супертипа
    Anonymous » » в форуме Android
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Может ли Lombok.tostring включить поле из супертипа без использования Callsuper?
    Anonymous » » в форуме JAVA
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Можно ли ввести подсказку в виде лямбда-функции?
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Можно ли ввести подсказку для скомпилированного регулярного выражения в Python?
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

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