首页 > 其他分享 >collection.abc模块下的抽象基类UML类图说明

collection.abc模块下的抽象基类UML类图说明

时间:2023-05-12 17:55:25浏览次数:46  
标签:__ abc 类图 collection Sized 抽象 基类 Iterable

说明

Iterable、Container和Sized

每个容器都应该继承这三个抽象基类,或者实现兼容的协议。Iterable通过__iter__方法支持迭代,
Container通过__contains__方法支持in运算符,Sized通过__len__方法支持len()函数。

Collection

这个抽象基类是3.6新增的,自身没有方法,目的是方便子类化Iterable、Container和Sized.

Sequence、Mapping和Set

这3个抽象基类是主要的不可变容器类型,而且各自都有可变的子类。

MappingView

在python3中,映射方法.items(),.keys()和.values()返回的对象分别实现了ItemsView、KeysView和ValuesView定义的接口。
前两个还实现了丰富的Set接口,拥有所有运算符

Iterator

注意它是Iterable的子类

Callable和Hashable

这两个不是容器,只不过因为Collections.abc是标准库中定义抽象基类的第一个模块,而它们又太重要了,因此才被放在这里。
它们可以在类型检查中用于指定可调用和可哈希的对象。

标签:__,abc,类图,collection,Sized,抽象,基类,Iterable
From: https://www.cnblogs.com/weiweivip666/p/17395926.html

相关文章

  • 「题解」ABC241Ex Card Deck Score
    小时候最喜欢看的一集没有\(b_i\)怎么做?答案是\([x^m]\prod\frac{1}{1-a_ix}\),我们知道它可以分解为\(\sum\frac{R_i}{1-a_ix}\),其中\(R_i\)是一个常数。具体构造就是上面EI的blog,和中国剩余定理及其类似。那么\(R_i=\frac{1-a_ix}{\prod_j(1-a_jx)}\bmod(1-a_ix)\)......
  • IOC类图
    BeanFactory系列DefaultListableBeanFactory描述BeanFactory定义容器接口。核心方法://从容器中获取beanObjectgetBean(Stringname)throwsBeansException;HierarchicalBeanFactory扩展容器的层次结构。核心方法://获取父容器BeanFactorygetParentBeanFactory()......
  • Codeforces Round 683 (Div. 1, by Meet IT) ABCDF题解
    F和D都在ABC上做过类似的,但是没打好,道心破碎。。。。A.Knapsack若物品质量在[(w+1)/2,w]之间做完了否则一直贪心加voidsolve(){intn;llw;cin>>n>>w;intc=n;for(inti=1;i<=n;i++){cin>>a[i];if(a[i]>w)c--;}if(!c){......
  • ABC262Ex Max Limited Sequence 题解
    题意:给定\(m\)个限制\((l_i,r_i,p_i)\)及\(n,k\),求满足以下条件的长度为\(n\)的不同序列\(a=(a_1,a_2,\cdots,a_n)\)的数目。\(\foralli\in[1,n],0\leqa_i\leqk\)\(\foralli\in[1,m],\max\limits_{j\in[l_i,r_i]}a_j=p_i\)同P4229,但数据更强,目测只允......
  • ABC191F 题解
    题目传送门题目分析我们发现,\(\text{min}\)操作实际上就是把两数当中较大的那个删除,较小的那个数不受影响,所以用最小的数删还是用另一个数删是无区别的。一个性质:\[\gcd(x,y)\le\min(x,y)\]不管\(a_{min}\)是原来的还是在\(\text{gcd}\)操作后新生成的,所以无论什么时......
  • [AtCoder-AT_ABC070C]题解(C++)
    PartIPreface原题目(Luogu)原题目(AtCoder)PartIISketch给定一个正整数\(N(1\leqN\leq100)\),表示时钟数量。接下来\(N\)行,每行一个正整数\(T_i(1\leqT_i\leq10^{18})\),表示每个时钟旋转\(T_i\)秒后还会回到原来的地方。求出在多少秒之后,所有时钟还会同时......
  • [AtCoder-AT_ABC070_A]题解(C++)
    PartIPreface原题目(Luogu)原题目(AtCoder)PartIISketch给定一个正整数\(n(100\leqn\leq999)\)。求\(n\)是否是一个回文数,是输出\(\texttt{Yes}\),不是输出\(\texttt{No}\)。PartIIIAnalysisSolve1如果仔细观察的话,应该都能发现,\(n\)一定是一个三位数。......
  • 【bat】bat如何删除某个目录下文件名包含abc字符串的文件
    【1】需求有10000多个文件,分布在一个大文件夹下的众多子目录,要删除文件名中包含指定字符集的文件。如下图:我要删除test目录下包含所有子文件夹的所有 文件名中带有s1/s2/s3的文件。这个需要匹配的字符串已经写到config.txt文件中【2】bat代码之前想用%er......
  • Java-Day-17( 集合( Collection 里的 List、Set ) )
    Java-Day-17集合先前用于保存多个数据使用的是——数组长度开始必须指定,且不能更改保存的必须为同一类型的元素使用数组进行增删元素的代码较为麻烦例:扩容的要先建新数组,再拷贝原数据、添加新对象引出集合可以动态保存任意多个对象,使用比较方便提供了一系列......
  • ABC034D 食塩水
    题意令\(p^{'}_i=\frac{p_i}{100w_i}\)。题意即最大化\(\dfrac{\sum\limits_{i=1}^kp^{'}_{\texttt{number}_i}}{\sum\limits_{i=1}^kw_{\texttt{number}_i}}\)。这就是一个很典的\(01\)分数规划了。时间复杂度\(O(Tn\logn)\),\(T\)为二分次数。submission......