黑马程序员技术交流社区

标题: 【杭州校区】python字典的深入理解和重写 [打印本页]

作者: 小江哥    时间: 2018-12-22 20:10
标题: 【杭州校区】python字典的深入理解和重写
前几天遇到的一个比较难的面试题,考察队python 字典的深入理解还有重写,题和答案如下
请写一个类继承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 __setattr__(self, key, value):
        self[key] = value
        super().__setattr__(key, value)

    def __getattr__(self, item):
        self[item] = self.__class__()
        self.__setattr__(item, Mydict())
        return super().__getitem__(item)

if __name__ == '__main__':
    mydict = Mydict()
    mydict.a = 1
    mydict.b = 2
    mydict.c.d = 3
    print(mydict)
    print(mydict.c)






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2