在 Python 中,object
是所有类的基类。这意味着在 Python 中创建的任何类都隐式或显式地继承自 object
类。object
类提供了一些基本的方法和属性,这些方法和属性可以被其子类继承和重写。
以下是一些关于 object
类的关键点:
-
所有类的基类:
- 在 Python 3 中,所有新式类(即使用
class MyClass:
定义的类,而不是旧式类class MyClass:
在 Python 2 中需要显式继承object
)都隐式地继承自object
。 - 你可以显式地继承
object
,例如class MyClass(object):
,但这在 Python 3 中是多余的,因为所有类默认继承object
。
- 在 Python 3 中,所有新式类(即使用
-
基本方法和属性:
__init__(self, ...)
:构造函数,用于初始化新创建的对象。__new__(cls, ...)
:静态方法,用于创建类的实例。通常不需要重写,但在某些情况下(如实现不可变类型或单例模式)很有用。__del__(self)
:析构函数,对象被垃圾回收时调用,用于清理资源。__repr__(self)
:返回对象的"官方"字符串表示,通常用于调试。__str__(self)
:返回对象的非正式或可打印的字符串表示。__format__(self, format_spec)
:支持格式化字符串操作,例如format()
函数或 f-string。__hash__(self)
:如果对象是可哈希的(即可以作为字典的键或集合的元素),则返回其哈希值。__eq__(self, other)
:比较两个对象是否相等。__lt__(self, other)
、__le__(self, other)
、__gt__(self, other)
、__ge__(self, other)
:定义对象的比较操作。
-
示例:
pythonclass MyClass(object): def __init__(self, name): self.name = name def __repr__(self): return f'MyClass(name={self.name!r})' def __str__(self): return f'Hello, {self.name}!' obj = MyClass('World') print(obj) # 调用 __str__ 方法 print(repr(obj)) # 调用 __repr__ 方法
-
自定义方法和属性:
- 你可以在类中定义自己的方法和属性,以扩展类的功能。
-
多重继承:
- Python 支持多重继承,即一个类可以继承多个基类。
- 例如:
class MyClass(Base1, Base2):
。
-
元类(Metaclass):
object
也可以用于创建元类,元类是类的类,用于定义类的行为。- 例如,使用
type
(它是默认的元类,也是object
的元类)来动态创建类。
通过理解 object
类及其基本方法和属性,你可以更有效地使用 Python 的面向对象编程特性。