从对象返回属性列表的属性值

时间:2018-03-05 14:27:14

标签: python class attributes

假设我有一些课程:

class A:
    def __init__(self, a=1, b=2, c=3):
        self.a = a
        self.b = b
        self.c = c

我希望能够通过将一个可迭代的属性名称传递给某个函数来从该类的实例访问多个属性:

def access_attr(attrs, obj=A()):
    return {a: eval('obj.{}'.format(a)) for a in attrs}

access_attr(attrs=['a', 'b'])
# returns {'a': 1, 'b': 2}

我不知道使用eval是否是最好的方法?是否有规范的方法来完成这项任务?

0 个答案:

没有答案