Python霧裏看花-鏈式調用

# -*- coding: utf-8 -*-


class SuperTupl(tuple):

    def to_lis(self):
        return list(self)

    def to_dic(self, set_key=0):
        a = {str(val[set_key]): val for val in self}
        return SuperDic(**a)


class SuperDic(dict):

    def clean(self, key):
        """
        d = SuperDic(a=1,b=2,c=3)
        print(d.clean('a').clean('b'))
        :param key:  the key will be deleted
        :return: dict without the key
        """
        self.pop(key)
        return self

    def remove_item(self, item):
        """
        d = SuperDic(a=1,b=2,c=3)
        print(d.remove_item({'a':1,'b':2}))
        :param key:  the key will be deleted
        :return: dict without the key
        """
        if isinstance(item, dict):
            for k, v in item.items():
                if self[k] == v:
                    self.pop(k)
        return self

    def to_tuple(self):
        return SuperTupl((k, v) for k, v in self.items())

    def __repr__(self):
        if isinstance(self, dict):
            _d = ''
            for k, v in self.items():
                _d += '\'' + str(k) + '\'' + ':' + str(v) + ', '
            return '{' + _d.rstrip(', ') + '}'
        elif isinstance(self, tuple):
            _t = ''
            for t in self:
                _t += '('+str(t)+')'
            return '('+_t+')'
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章