object理解 Python 面向对象编程的基石
object?
在 Python 中,一切皆对象。这意味着每个变量、函数、类、模块甚至数字和字符串都是对象。
而所有这些对象都直接或间接地继承自一个名为 object 的基类。
object 是 Python 类层次结构的根。它是所有类的默认父类(即使你没有显式继承它)。
object 如此重要?__str__()、__repr__()、__eq__() 等。isinstance(obj, object) 总是返回 True。# 所有类默认继承自 object
class MyClass:
pass
# 等价于
class MyClass(object):
pass
# 验证继承关系
print(MyClass.__bases__) # 输出: (<class 'object'>,)
# 所有实例都是 object 的实例
obj = MyClass()
print(isinstance(obj, object)) # True
# 查看 object 提供的方法
print(dir(object))
Q:Python 2 和 Python 3 中 object 有区别吗?
A:在 Python 2 中,只有显式继承 object 的类才是“新式类”;而在 Python 3 中,所有类默认都是新式类,自动继承 object。
Q:我可以修改 object 吗?
A:不建议。它是 Python 内置类型,修改可能导致不可预知的行为。