如何从字符串创建Python类?

2024-10-01 19:27:41 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我试着有一个文件,里面有一堆对象,看起来像这样:

<class 'oPlayer.oPlayer'>,123,4,<class 'CommonObject.Wall'>,175,4,<class 'CommonObject.Wall'>,25,654,<class 'CommonObject.Wall'>,1,123,<class 'CommonObject.Wall'>,55,87

(拆分时没有换行符)

该文件包含对象名、x和y坐标。(基本信息)但我不能百分之百确定如何从文件创建对象。以下是我所拥有的:

^{pr2}$

文件中的对象都有两个参数,x和y,所以我也不明白这是怎么回事。我所做的就是抓取列表中所有的拆分字符串(我显示出来,结果是正确的)。No\n's),然后我循环查看列表(某种程度上)以设置所有数据。我假设type会返回对象,但事实并非如此

如有任何关于上述主题的帮助,我们将不胜感激。在


Tags: 文件数据对象no字符串信息列表参数
1条回答
网友
1楼 · 发布于 2024-10-01 19:27:41

尝试从 Get python class object from string

import importlib
...
for i in range(len(data) / 3):    
        # get object data
        cls = data[i * 3]
        x = int(data[i * 3 + 1])
        y = int(data[i * 3 + 2])

        # get module and class
        module_name, class_name = cls.split(".")
        somemodule = importlib.import_module(module_name)

        # instantiate
        obj = getattr(somemodule, class_name)(x, y)

        self.instances.append(obj)

下面是一个完整的示例(将其放入名为getattrtest.py的文件中):

^{pr2}$

使用Python2.7进行测试

相关问题 更多 >

    热门问题