Параметры, возвращаемые вызываемым классом python, недоступны в вызывающем классе. Вызываемый класс получает значения из файла и возвращает их вызывающему классу.
Вызываемый класс (XPGWGetParms) создает словарь для возврата в вызывающий класс.
Class Main():
def __init__(self, root, *args, *kwargs)
self.root = root
self.kwargs = {}
def return_data(self):
"""
:return:
"""
self.kwargs = {
'text': self.text,
'codes': self.codes,
'darwin': self.darwin,
'windows': self.windows,
'linux': self.linux,
'raster_warning_level': self.raster_warning_level,
'padx': self.padx,
'pady': self.pady,
'win_background': self.win_background,
'screen_width': self.screen_width,
'screen_height': self.screen_height,
'char_width': self.char_width,
'progbar_maximum': self.progbar_maximum,
'window_app_name': self.window_app_name,
'default_font': self.default_font,
'next_step': self.next_step
}
return self.kwargs
вызывающий класс
class Main(tk.Frame)
def __init__(self, root, *args, **kwargs)
tk.Frame.__init__(self, root, *args, **kwargs)
self.kwargs = {}
self.text = {}
self.codes = {}
# Get text strings and parms
self.kwargs = XPGWGetParms.Main(self, root, *args, **kwargs)
self.text = self.kwargs['text']
self.codes = self.kwargs['codes']
Я ожидал, что self.text в вызывающем классе будет заполнен значением, назначенным клавише 'text', т.е. self.text. Вместо этого я получаю вложенное значение kwargs, согласно отладчику, т. Е.
self={Main}.!main
kwargs=Main<XPGWGetParms.Main...
kwargs={dict}<class'dict>...
'text'={dict}<class'dict>...
'APPNAME'={str}'Application Name'
Я не знаю, что я делаю неправильно, возможно, это довольно просто, но я не могу разобраться.