【python】dict的子类

#不建议继承list和dict
class Mydict(dict):
    def __setitem__(self, key, value):
        super().__setitem__(key, value*2)

my_dict = Mydict(one=1)
print(my_dict)          #{'one': 1}  继承原声C语言实现的dict会不生效
my_dict["one"] = 1      # {'one': 2}   这个时候才生效
print (my_dict)

from collections import UserDict

class Mydict(UserDict):     #如果要继承dict的话,继承collections 下的 UserDict
    def __setitem__(self, key, value):
        super().__setitem__(key, value*2)

my_dict = Mydict(one=1)
# my_dict["one"] = 1
print (my_dict)     #   {'one': 2}

from collections import defaultdict

my_dict = defaultdict(dict)
my_value = my_dict["bobby"]         #没有这个键时,返回空字典



你可能感兴趣的:(【python】dict的子类)