Этого можно добиться, используя getattr
:
name1 = sys.argv.pop()
# ...
values = getattr(myconfig, name1)
self.do_x(values['lower_bound'], values['upper_bound'])
Обратите внимание, что getattr
чувствителен к регистру, это означает, что хотя getattr(myconfig, 'Oink')
даст правильное значение, getattr(myconfig, 'oink')
вызовет AttributeError
Если вы хотите обработать недопустимые значения, вы можете использовать hasattr
:
if not hasattr(myconfig, name1):
raise ValueError('Invalid value {}'.format(name1))
values = getattr(myconfig, name1)
self.do_x(values['lower_bound'], values['upper_bound'])
Если вместо повышения ValueError
вы хотите использовать значение по умолчанию, вы можете использовать ключевое слово default
для getattr
:
default = dict(lower_bound=20, upper_bound=50)
values = getattr(myconfig, name1, default=default)
self.do_x(values['lower_bound'], values['upper_bound'])