Python自定义一个类实现字典dict功能的方法

yipeiwu_com7年前Python基础

如下所示:

import collections


class Mydict(collections.UserDict):


  def __missing__(self, key):
    if isinstance(key, str):
      raise KeyError(key)
    return self[str(key)]

  def __contains__(self, key):
    return str(key) in self.data

  def __setitem__(self, key, item):
    self.data[str(key)] = item

  def __getattr__(self, key):
    return self.data[str(key)]


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

  print(mydict)
  print(mydict.a)
  print(mydict['a'])

以上这篇Python自定义一个类实现字典dict功能的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python使用import导入本地脚本及导入模块的技巧总结

本文实例讲述了Python使用import导入本地脚本及导入模块的技巧。分享给大家供大家参考,具体如下: 导入本地脚本 import 如果你要导入的 Python 脚本与当前脚本位于同一...

在Python中使用defaultdict初始化字典以及应用方法

Python中可以使用collections中的defaultdict类实现创建进行统一初始化的字典。这里总结两种常用一点的初始化方式,分别是初始化为list和int。 初始化为list...

Django框架ORM数据库操作实例详解

Django框架ORM数据库操作实例详解

本文实例讲述了Django框架ORM数据库操作。分享给大家供大家参考,具体如下: 测试数据:BookInfo表 PeopleInfo表 一.增加 1.save: 对象 = 模型类...

利用Celery实现Django博客PV统计功能详解

前言 前几天给网站的文章增加了pv统计,之前只有uv统计。之前没加pv统计是觉得每个用户每访问一次文章,我都需要做一次数据库写操作实在是有损性能,毕竟从用户在the5fire博客的的一...

python 处理数字,把大于上限的数字置零实现方法

如下所示: # coding=utf-8 # 用来处理数字,大于上限的数字置零 f = open("/home/chuwei/桌面/trainA/loss/d_losses.tx...