使用字符串列表调用函数,对象属性或模块

时间:2018-12-05 05:30:13

标签: python-3.x

我有一个模块名称列表:

md = ['md1','md2','md3']

每个模块都有一个名为object的类,其属性为name

class object:
    name = 'obj'

在另一个脚本中,我想从所有模块中输出类object的所有属性值(假设我已经导入了它):

for x in md:
    print(x.object.name)

我期望的是:

# Attribute values from class 'object' from all modules
obj
obj
obj

但是当我尝试这样做时,它给了我这个错误:

Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
AttributeError: 'str' object has no attribute 'name'

2 个答案:

答案 0 :(得分:0)

formatstr下。 这将起作用。 ('{}'.format(module_name)).split)

答案 1 :(得分:0)

您要实现的目标非常模糊。如果您尝试使用attribute中的function,则需要将其导入。 .format()用于字符串str格式。

import re
re.search('(?<=abc)def', 'abcdef')

这将提供一个功能对象。