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

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.

主站蜘蛛池模板: 曲松县| 光山县| 漳平市| 湘潭县| 纳雍县| 富裕县| 邯郸市| 酒泉市| 内丘县| 阜康市| 威信县| 陈巴尔虎旗| 东源县| 武清区| 金坛市| 万盛区| 忻州市| 开化县| 商河县| 布拖县| 丰台区| 唐山市| 平南县| 惠安县| 望城县| 清河县| 南澳县| 黎平县| 杭锦旗| 陈巴尔虎旗| 开化县| 齐齐哈尔市| 蒲江县| 义乌市| 班玛县| 高清| 偃师市| 丰县| 盱眙县| 中超| 同心县|