python 这里的“对象”是指对象类吗

kuuvgm7e  于 2024-01-05  发布在  Python
关注(0)|答案(2)|浏览(161)

我在定义模拟容器类型的Python文档中看到https://docs.python.org/3/reference/datamodel.html#emulating-container-types,它指出:

object.len(self)

  1. 调用以实现内置函数len().
  2. ...

object.getitem(self,key)

  1. 调用以实现self[key]的求值。对于序列类型...
  2. ...

......
我想知道它似乎指示添加__len__函数作为object类的属性,但如果您创建一个模拟类,例如EmuList

  1. class EmuList:
  2. def __len__(self):
  3. pass
  4. ...

字符串
__len__函数应该附加到EmuList,但object,尽管EmuList继承自对象类。object.__len__中的object前缀在此上下文中真正意味着什么?

2admgd59

2admgd591#

它没有在文档中明确说明,但据我所知,它代表了这些方法可以由任意类实现的事实。它不代表object类型,因为许多特殊方法都没有为object实现,比如__len____getitem__

yws3nbqq

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

相关问题