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

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.

主站蜘蛛池模板: 来宾市| 江北区| 进贤县| 高州市| 宜州市| 安丘市| 阜阳市| 昌平区| 个旧市| 威远县| 绍兴市| 西宁市| 喀喇沁旗| 宁德市| 新巴尔虎左旗| 黄浦区| 皋兰县| 北辰区| 湘乡市| 武定县| 长治县| 湖南省| 墨玉县| 河津市| 石门县| 新野县| 桂平市| 克山县| 临海市| 桂林市| 凤山县| 宜昌市| 遂平县| 白城市| 乌拉特后旗| 崇阳县| 瑞金市| 新密市| 崇明县| 金秀| 惠水县|