动态实例属性

发布于 2021-01-29 16:38:12

说我有一堂课:

class Foo(object):
    def __init__(self,d):
        self.d=d

d={'a':1,'b':2}

inst=Foo(d)

inst.d
Out[315]: {'a': 1, 'b': 2}

有没有一种方法可以动态创建n个属性,其中每个属性都是dict键,因此inst.a将返回1等等。

关注者
0
被浏览
39
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    用途setattr()

    >>> class foo(object):
        def __init__(self, d):
            self.d = d
            for x in self.d:
                setattr(self, x, self.d[x])
    
    
    >>> d = {'a': 1, 'b': 2}
    >>> l = foo(d)
    >>> l.d
    {'a': 1, 'b': 2}
    >>> l.a
    1
    >>> l.b
    2
    >>>
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看