Python 对象模型深度解析:一切皆对象
Python 以其'一切皆对象'的设计哲学而闻名,这种设计为语言带来了极大的灵活性和一致性。本文将深入探讨 Python 的对象模型,解释为什么说'Python 中一切皆对象',并通过实例展示这一特性如何影响我们的编程方式。
什么是'一切皆对象'?
在 Python 中,从简单的数字、字符串到复杂的函数、类甚至模块,所有这些都是对象。这意味着它们都有:
- 身份 (identity):对象在内存中的唯一地址,可通过
id()函数获取 - 类型 (type):决定了对象支持的操作,可通过
type()函数获取 - 值 (value):对象包含的实际数据
# 即使是简单的整数也是对象
num = 42
print(id(num)) # 打印对象的内存地址
print(type(num)) # 打印对象的类型
Python 对象的类型层次
Python 中的对象可以分为几个主要类别:
1. 内置类型对象
- 数字:
int,float,complex - 序列:
str,list,tuple,bytes - 映射:
dict - 集合:
set,frozenset - 布尔:
bool - 其他:
None,Ellipsis
2. 函数对象
在 Python 中,函数也是对象:
def greet(name):
return f"Hello, {name}!"
print(type(greet)) # <class 'function'>
print(id(greet)) # 函数对象的内存地址
3. 类对象和实例对象
类本身是对象(type 的实例),而类的实例也是对象:
class Person:
pass
print((Person))
p = Person()
((p))


