***EDIT2:对损坏的代码感到抱歉。这是说明相同问题的工作代码:
class bead():
def printmsg(a):
print('test message')
chain1=bead()
x='chain1'
eval(x + '.printmsg()')
***编辑:感谢 gnibbler 回答最初的问题。这是我的问题的一个措辞更好的版本:
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 文本'
有更好的方法吗?
***编辑:getattr() 用于从类中提取信息。谢谢你。让我稍微改变一下问题:
我可以用什么代替:
x='链1' y='mol1'
最佳答案
代替eval()
,你可以说
getattr(locals()[x], y)
或
getattr(locals().get(x), y)
你是这个意思吗?
关于python:从变量名创建实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6367164/