У меня есть графический интерфейс, и через него я загружаю некоторые данные. Когда файл загружен, его имя файла используется в качестве идентификатора, который заполняет графический интерфейс, а также словарь внизу, чтобы отслеживать текущее состояние для каждого файла.
Однако при таком подходе я не могу получить автозаполнение из класса MetaData
, например когда я хочу получить доступ к data.container.[GUIcurrentFile].one_of_many_attributes
.
Есть ли способ обойти это? Может быть, хранение файлов в памяти совершенно другим способом? Что люди обычно делают в этих сценариях? Я не слишком знаком с разработкой графического интерфейса.
class Data:
def __init__(self):
self.container = dict()
def load(self, name):
self.container[name] = MetaData()
class MetaData:
def __init__(self):
self.one_of_many_attributes = None
# This is instantiated in the main part of the GUI, e.g. self.data = Data()
data = Data()
## Series of events happening through the GUI
# Grab loaded file through a GUI
GUIcurrentFile = "file1"
data.load(GUIcurrentFile)
GUIcurrentFile = "file2"
data.load(GUIcurrentFile)
# Each file has separate attributes
data.container[GUIcurrentFile].one_of_many_attributes = "foo"
# File is removed from GUI, and can easily be removed from dictionary internally
data.container.pop(GUIcurrentFile)