python:从变量名创建实例

标签 python class instance

***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/

相关文章:

python - 如何获取 win32com 对象的实例类型?

c# - 创建未设置为对象实例的 Outlook 应用程序对象引用

PHP获取类实例的变量名称?

python - Python中变量名后的下划线

c++ - 无法从新函数中修改类变量

python - 大量点的多边形点

C++ 定义类成员结构并在成员函数中返回它

c++ - 将基类的指针转换为继承类

python - Django REST Framework 中的私有(private)和公共(public)字段

python - 条件匹配后从另一个数据框中的匹配索引复制值