理解“一切皆对象”的核心机制
在 Python 中,object 是所有类的基类(根类)。无论你定义什么类,它都隐式或显式地继承自 object。
这体现了 Python “一切皆对象” 的设计哲学 —— 数字、字符串、函数、模块,甚至类本身,都是对象。
object 继承的基本方法,如 __str__()、__repr__()、__eq__() 等。isinstance(x, object) 对任何变量 x 都返回 True。object。# 示例 1:验证一切皆 object
print(isinstance(42, object)) # True
print(isinstance("hello", object)) # True
print(isinstance([], object)) # True
print(isinstance(len, object)) # True
# 示例 2:自定义类继承 object(Python 3 中可省略)
class MyClass(object):
pass
obj = MyClass()
print(isinstance(obj, object)) # True
print(MyClass.__bases__) # (<class 'object'>,)
# 示例 3:object 提供的默认方法
x = object()
print(x.__str__()) # <object object at 0x...>
type 和 object 构建类的层级结构。
误区:“只有类实例才是对象。”
正解:在 Python 中,一切都是对象 —— 包括整数 1、函数 print、甚至 None。
print(type(1)) # <class 'int'>
print(type(print)) # <class 'builtin_function_or_method'>
print(type(None)) # <class 'NoneType'>
# 所有 type 的结果都是类,而类本身也是 object 的实例!
print(isinstance(int, object)) # True