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

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.

主站蜘蛛池模板: 肥东县| 梨树县| 东光县| 吉水县| 镇安县| 衡山县| 高要市| 阿图什市| 宁阳县| 青海省| 台南市| 中阳县| 利津县| 博客| 织金县| 同江市| 高碑店市| 绥德县| 井研县| 特克斯县| 阿鲁科尔沁旗| 英德市| 平远县| 甘孜县| 屏边| 米易县| 富民县| 蒙自县| 新乡市| 登封市| 崇文区| 夏津县| 金乡县| 深水埗区| 高阳县| 抚松县| 江陵县| 成都市| 象山县| 成武县| 孟津县|