python类对象定义

时间:2015-07-18 19:48:09

标签: python class object declaration definition

我对Python Object类有疑问。据我了解,所有类都基于Object类。我找不到对象的类定义:

class Object:
    code for methods and attributes.

如果我使用dir(object),我会得到这个:

dir(object)

['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']

这些方法的代码是否存在或者无法访问?我正在和O' Reilly学习Python,课程的一部分是在论坛上提问并记录答案。我相信我已经遵守了你的所有要求。我在互联网上搜索了几个小时和你的网站。我也搜过几本书。我甚至无法找到正在解决的话题。我对Python和面向对象编程比较陌生,所以也许我错过了一些东西。也许没有必要知道这个来解决问题,但我很惊讶我找不到任何关于这个问题的评论。

1 个答案:

答案 0 :(得分:2)

这些是object类型的内部方法。根据文件

  

object是所有类的基础。它具有所有Python类实例共有的方法。

这些通常在运行时实现,例如对于CPython解释器(默认实现),您可以在https://github.com/python/cpython/blob/master/Objects/object.c找到代码。

您还可以查看https://github.com/python/cpython/blob/7862ded73723e4573ed5d13488c07b41ac31a07e/Objects/typeobject.c#L4357,在那里您可以找到内部定义object的方式以及各种方法指向的位置。同样,这些都是cpython的内部结构,但是会给你一个关于幕后发生的事情的公平点。

您当然可以覆盖其中大部分内容来自定义班级的行为。