1. Python内置函数object深度解析
1.1 object基础特性与本质
在Python中,object类是所有类的终极基类,它定义了所有Python对象共有的最基本行为。理解object的本质是掌握Python面向对象编程的关键。
python复制# 创建基础object实例
base_obj = object()
print(f"对象类型: {type(base_obj)}") # 输出: <class 'object'>
print(f"对象标识: {id(base_obj)}")
print(f"对象哈希: {hash(base_obj)}")
object实例有几个重要特性:
- 没有
__dict__属性,无法动态添加属性 - 默认使用
__slots__机制,内存占用更小 - 提供了最基本的对象方法:
__str__,__repr__,__eq__等
注意:直接实例化
object()创建的对象几乎没什么实用价值,它的主要作用是作为其他类的基类。
1.2 实际应用:创建轻量级基类
在实际开发中,我们可以利用object作为基类创建轻量级的类结构,特别适合需要大量实例且内存敏感的场景。
python复制class LightweightBase(object):
"""轻量级基类,使用__slots__减少内存占用"""
__slots__ = ('x', 'y') # 明确指定可用的属性
def __init__(self, x=0, y=0):
self.x = x
self.y = y
def __repr__(self):
return f"LightweightBase(x={self.x}, y={self.y})"
def move(self, dx, dy):
"""移动位置"""
self.x += dx
self.y += dy
return self
内存占用对比测试:
python复制import sys
class NormalClass:
def __init__(self, x, y):
self.x = x
self.y = y
normal_obj = NormalClass(1, 2)
lightweight_obj = LightweightBase(1, 2)
print(f"普通对象大小: {sys.getsizeof(normal_obj) + sys.getsizeof(normal_obj.__dict__)} 字节")
print(f"轻量对象大小: {sys.getsizeof(lightweight_obj)} 字节")
实测发现,使用__slots__的轻量级类可以节省约40-50%的内存空间,这在需要创建数百万个实例时差异非常明显。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. oct()函数:八进制转换专家
2.1 基础用法与进制转换
oct()函数将整数转换为以"0o"为前缀的八进制字符串,是Python中处理八进制数据的主要工具。
python复制# 基本转换示例
print(oct(8)) # 输出: '0o10'
print(oct(10))
