Python 分析访问细节,下面介绍两个分析函数,并使用它们来过滤和分析各个AccessDetails
对象。第一个filter()
函数只传递特定路径。第二个函数会汇总每个不同路径的出现频次。
下面定义一个小函数book_in_path()
,并结合内置的filter()
函数,用于分析细节。复合的book_filter()
函数如下所示:
这样就通过book_in_path
函数定义了一条规则,并将其应用于每个AccessDetails
对象。如果路径名非空,且路径的一级属性是book
,那么我们会对这些对象感兴趣,其他所有AccessDetails
对象都会被静默排除。
我们最感兴趣的是reduce_book_total()
归约函数,如下所示:
该函数会生成一个Counter()
对象,用于显示AccessDetails
对象中每个路径出现的频率。可以使用reduce_total(book_filter(details))
方法关注某组的特定路径,它汇总了给定过滤器可接收的数据项。
由于Counter
对象适用于各类型,因此需要类型提示来缩小类型范围。在本例中,类型提示是Dict[str, int]
,它会告知mypy工具统计路径的字符串表示形式。