Как объявить тип атрибута необъявленной переменнойPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как объявить тип атрибута необъявленной переменной

Сообщение Anonymous »

Я хочу объявить тип переменной, которую я не объявляю сам, но о существовании которой я знаю.
Мотивация
Я в настоящее время работаю с библиотекой kivy, которая плохо справляется с указанием проверяющим статические типы типов ее полей. Я хотел бы сам указать типы, чтобы иметь возможность автодополнения. В приведенном ниже примере self.ids будет DictProperty (я считаю, что это подкласс dict), и я хочу объявить тип self.ids.task_list_area.
Постановка задачи
Как объявить тип self.ids.task_list_area в следующем коде? p>
class MyScreenManager(ScreenManager):
task_list = ["Do Homework", "Take out Trash"]

class DetailsScreen(Screen):

manager: MyScreenManager # this works

# ids: dict
# ids.task_list_area: BoxLayout # this does not work because ids does not exist

def display_tasks(self):
print(self.manager.task_list) # this is correctly infered as list[str]

# this works at runtime, but the type checker has no clue what is happening
print(self.ids.task_list_area)

def display_tasks_with_annotation(self):
self.ids.task_list_area: BoxLayout # this does not error, but does not work either

print(self.ids.task_list_area) # type checker still knows nothing


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

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

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

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

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

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

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