对于不同的python类型和它们必须实现的神奇方法,是否有“思维导图”、UML图、图形或一些可靠的参考
我正在使用Python 3.8。{a1}和{a2}文档非常简洁,它将帮助我了解python中针对不同类型存在的不同协议的高级概述(我已经“了解”(阅读了?),例如,要实现一个“类似于不可变的”对象,必须遵循python中的{__setitem__
和__delitem__
)
我没有看到python文档中使用的“protocol”一词,最贴切的描述似乎来自collections abstract base classes模块。但是,作为一个新手,我不确定collections.abc
是否完全是其他的东西,或者这里提供的信息是否适用于python内置类型(即list
,tuple
dict
等等;特别是因为collections.abc
文档声明它“提供了Python的通用内置容器、dict、list、set和tuple的替代方案”,第二,因为如果我想从Python语言本身了解默认内置内容,我不想去collections
模块)
有人有可靠的资源吗?如果信息是一种继承关系格式,这样信息就不会被重复,这会很有帮助。例如,在我上面的例子中,与其说一个mutable-like
对象实现了__len__
、__getitem__
、__setitem__
和__delitem__
,不如说我的弱小的大脑更容易控制它。”“chunked”和信息类似于“一个mutable-like
对象继承自immutable-like
并添加__setitem__
和__delitem__
有什么想法吗?我认为这对新手来说是一个巨大的困惑,许多错误是由于对python中的数据类型的误解造成的
从the glossary建很多房子,这是我目前能做的最好的了。我希望这个问题能被其他人的多个答案所扩展
定义
numbers
):一个支持数值运算的不可变的值[]
):index{key: value}
):key()
):由索引访问的对象引用的不可变序列{}
):a可变对象的无序集合唯一且不可变的对象类型
__eq__()
和__lt__()
,__le__()
,__gt__()
,__ge__()
。对于包含检查(即与in
一起使用),实现__contains__()
或是Iterable
__iter__()
(返回对象)和__next__()
(从容器返回下一项;完成后引发StopIteration
)__iter__()
(产生对象)和__next__()
(产生容器中的下一项;完成后产生StopIteration
)__hash__()
__enter__()
和__exit__()
(在with
语句中使用)__get__()
、__set__()
和/或__delete__()
重载操作
+
是浓缩*
是重复11注意:序列中的重复项不会被复制,而是多次引用。要制作唯一副本,请使用列表理解或生成器表达式
补充意见
built-in
类型是所有的lower case
对象(例如list
、tuple
、str
等)Sequences
都是Iterables
Sets
和Dicitionaries
也支持理解Bitwise Operations
可用于Sets
实现集合论运算(即并集、交集、对称差分等)序列类型的概念分组
容器/平面序列
list
,tuple
,collections.deque
)str
,bytes
,bytearray
,memoryview
,array.array
)可变/不可变序列
list
,bytearray
,array.array
,collections.deque
,memoryview
tuple
,str
,bytes
另一个很好的参考是Fluent Python, by Luciano Ramalho
相关问题 更多 >
编程相关推荐