Заглушки Python для динамически генерируемого классаPython

Программы на Python
Ответить
Anonymous
 Заглушки Python для динамически генерируемого класса

Сообщение Anonymous »

У меня есть класс, который создается динамически на основе словаря: выходные данные представляют собой дерево, в котором каждый лист является объектом класса Item. Каждый элемент может иметь 0 или несколько дочерних элементов (другие элементы).
Например, начиная с этого dict:

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

folder_struct ={
"my_file": "file.csv",
"invoices": {
"inv_part_1": "inv_part_1.csv",
"inv_part_2": "inv_part_2.csv",
"inv_part_3": "inv_part_3.csv",
"invoices_previous": {
"old_invoices": "old_invoices.parquet"
}
}
}
дерево имеет следующую структуру:

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

U: invoices
U:   inv_part_1
U:   inv_part_2
U:   inv_part_3
U:   invoices_previous
U:     old_invoices
U: my_file
доступ к нему можно получить следующим образом:

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

D = initialize(folder_struct)
D.invoices.inv_part_1.url
D.invoices.inv_part_1.read()
D.my_file.do_something()
Поскольку каждый лист добавляется во время выполнения, IDE не может проверить, какие атрибуты и методы доступны, и поэтому никакие предложения/строка документации/syntax_errors_check не могут быть выполнены когда отладчик отключен.
Есть ли способ добавить необходимую информацию о типе «будущей» структуры класса, даже если код еще не запускался?

Подробнее здесь: https://stackoverflow.com/questions/792 ... ated-class
Ответить

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

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

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

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

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