官术网_书友最值得收藏!

The defaultdict class

As an example of why that's interesting, consider this-Python's standard library contains a data structure class called defaultdict, which is like a dictionary except, when we try to look up a key that isn't already in the dictionary. It creates a new value and adds it to the dictionary, before returning it to the code that tried the lookup, as shown here:

How does the defaultdict class know how to create the default value?

The defaultdict class knows because we gave it class as a parameter when we created the defaultdict class. Thus, if we want a dictionary of list, we can give the defaultdict class the list class, as its how to make a default parameter. As an aside, defaultdict can also work with a function, as its how to make a default parameter.

The defaultdict class actually doesn't care what that parameter is, as long as the object we passed can create a new object whenever the defaultdict class needs a new default. This is an example of the duck typing we mentioned in the previous section. It doesn't matter whether the parameter is a function, a class, or anything else, so long as it behaves properly. If it doesn't behave properly, we'll be told what went wrong and where.

主站蜘蛛池模板: 四川省| 老河口市| 贵定县| 驻马店市| 隆子县| 富宁县| 准格尔旗| 虞城县| 浦东新区| 阿克苏市| 东兰县| 巨野县| 唐海县| 白河县| 普陀区| 景泰县| 永福县| 水城县| 涟水县| 南召县| 枣强县| 郓城县| 绥阳县| 天水市| 辛集市| 天台县| 汉川市| 汨罗市| 甘谷县| 灵台县| 葵青区| 安新县| 嘉兴市| 河东区| 长宁区| 巴彦县| 多伦县| 绥滨县| 宽城| 八宿县| 云霄县|