美文网首页
python __getitem__,__setitem__的内

python __getitem__,__setitem__的内

作者: 远行_2a22 | 来源:发表于2019-07-05 15:57 被阅读0次

    偶然看到类似这样的代码:

     def print_test(self):
            result = self['name'];
            print(result)
    

    也就是说通过self[]访问类里的数据。查阅资料后,要想如此访问,必须实现__getitem__.进一步的,要想像字典一样的设置,则需要添加__setitem__

    class DictDemo(object):
        def __init__(self, path=""):
            self._path = path
            self.data_dict = {
                "name": "jie",
                "age": 25,
            }
        def print_test(self, key):
            result = self[key];
            print(result)
    
        def __getitem__(self, item):
            result = self.data_dict.get(item)
            return result
    
        def __setitem__(self,key,value):
            self.data_dict[key]=value
    
    my_dict = DictDemo()
    my_dict.print_test("name")
    my_dict["height"] = 185
    my_dict.print_test("height")
    

    参考:
    python四个魔法方法len,getitem,setitem,delitem - yuan_j_y的专栏 - CSDN博客
    https://blog.csdn.net/yuan_j_y/article/details/9317817

    相关文章

      网友评论

          本文标题:python __getitem__,__setitem__的内

          本文链接:https://www.haomeiwen.com/subject/dcsehctx.html