一道关于 Python 点操作符的笔试题

2019-05-13  本文已影响0人  tingshuo123

题目

请写一个类继承dict类,支持 . 方式访问
mydict = Mydict()
mydict.a = 1
mydict.b = 2
mydict.c.d = 3
print mydict
print mydict.c
输出:
{'a': 1, 'c': {'d': 3}, 'b': 2}
{'d': 3}

回答

class MyDict(dict):
    def __getattr__(self, name):
        return self.setdefault(name, MyDict())

    def __setattr__(self, name, value):
        self[name] = value

if __name__ == "__main__":
    dct = MyDict()
    dct.a = 1
    dct.b = 2
    dct.c.b = 3

    print(dct)
    print(dct.c)
上一篇下一篇

猜你喜欢

热点阅读