*** EDIT2: Извините за неработающий код. Вот рабочий код, который иллюстрирует ту же проблему:
class bead():
def printmsg(a):
print('test message')
chain1=bead()
x='chain1'
eval(x + '.printmsg()')
*** EDIT: Спасибо, Гнибблер, за ответ на оригинальный вопрос. Вот лучше сформулированная версия моего вопроса:
class bead():
def msg():
print('test message')
x='chain1'
y='bead1'
eval(x + '.' + y + '=bead()')
chain1.bead1.msg()
Выход:
'тестовое сообщение'
Какой лучший способ сделать это?
Оригинальный вопрос:
Сценарий:
class testClass():
test1='test1 text'
x='testClass'
y='test1'
eval(x + '.' + y)
выход:
'test1 text'
Есть ли лучший способ сделать это?
*** EDIT: getattr () работает для извлечения информации из класса. Спасибо, Гнибблер. Позвольте мне немного изменить вопрос:
что я мог бы использовать вместо:
х = 'chain1'
у 'mol1' =