我在定义模拟容器类型的Python文档中看到https://docs.python.org/3/reference/datamodel.html#emulating-container-types,它指出:
object.len(self)
调用以实现内置函数len().
...
object.getitem(self,key)
调用以实现self[key]的求值。对于序列类型...
...
......
我想知道它似乎指示添加__len__
函数作为object
类的属性,但如果您创建一个模拟类,例如EmuList
class EmuList:
def __len__(self):
pass
...
字符串__len__
函数应该附加到EmuList
,但object
,尽管EmuList继承自对象类。object.__len__
中的object
前缀在此上下文中真正意味着什么?
2条答案
按热度按时间2admgd591#
它没有在文档中明确说明,但据我所知,它代表了这些方法可以由任意类实现的事实。它不代表
object
类型,因为许多特殊方法都没有为object
实现,比如__len__
和__getitem__
。yws3nbqq2#
我回答我的问题,实际上这样的“object.”是Python文档用来表示它应该是一个对象的属性,例子如下:
特殊属性实现为几个对象类型添加了一些特殊的只读属性,这些属性是相关的。其中一些没有被dir()内置函数报告。
object.dict用于存储对象的(可写)属性的字典或其他Map对象。
instance.class类示例所属的类。
class.bases类对象的基类的元组。
定义。name类、函数、方法、描述符或生成器示例的名称。
definition.qualname类、函数、方法、描述符或生成器示例的限定名。
在3.3版本中新增。
...
参考网址是https://docs.python.org/3/library/stdtypes.html#definition.name