链条传动

砥砺前行,不忘初心!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
'''
自定义有序字典:字典原功能不变,只是添加有序功能
'''

#继承系统的字典类(dict)
class MyDict(dict):

    #在父类的init方法上新建一个字段(self.li)
    def __init__(self):
        super(MyDict,self).__init__()  #执行父类的init方法
        self.li = []  #创建一个空列表(用来存放字典的key)


    def __setitem__(self, key, value):
        self.li.append(key)  #将key添加到自定义的列表中
        super(MyDict,self).__setitem__(key,value)   #执行父类的setitem方法


    def __str__(self):
        temp_list = []
        for key in self.li:
            value = self.get(key)
            if isinstance(value,str):
                temp_list.append("'%s': '%s'" % (key,value))
            else:
                temp_list.append("'%s': %s" % (key,value))

        temp_str = '{' + ','.join(temp_list) + '}'
        return temp_str


#有序
obj = MyDict()
obj['k1'] = 'v1'
obj['k2'] = 'v2'
obj['k3'] = 123
print(obj)

#无序
obj1 = dict()
obj1['k1'] = 'v1'
obj1['k2'] = 'v2'
obj1['k3'] = 123
print(obj1)

 

posted on 2016-11-07 13:58  链条君  阅读(189)  评论(0编辑  收藏  举报