1. Python学习第40天:面向对象编程进阶实战
作为一名从Python新手一路走过来的开发者,我清楚地记得学到第40天时遇到的瓶颈期。这个阶段已经掌握了基础语法和简单面向对象编程,但距离真正"精通"还差几个关键突破点。今天我们就来深入探讨这个阶段必须掌握的四大核心技能:魔术方法、属性管理、抽象基类和元类编程。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 魔术方法:Python的语法糖背后
2.1 常用魔术方法解析
魔术方法是Python面向对象编程中最具特色的部分之一。以__init__为例,虽然每个初学者都会用,但很多人不知道它其实不是真正的构造函数:
python复制class Demo:
def __new__(cls, *args, **kwargs): # 这才是真正的构造方法
print("对象分配内存")
return super().__new__(cls)
def __init__(self, value): # 初始化方法
print("对象初始化")
self.value = value
实际开发中常用的魔术方法还包括:
__str__vs__repr__:前者用于友好显示,后者用于开发者调试__getitem__/__setitem__:实现容器行为__call__:让实例可像函数一样调用
提示:实现
__len__时要注意时间复杂度,频繁调用的方法应该保证O(1)复杂度
2.2 上下文管理器的正确实现方式
很多教程教大家用__enter__和__exit__实现上下文管理器时,忽略了异常处理的重要性:
python复制class DatabaseConnection:
def __enter__(self):
self.conn = create_connection()
return self.conn
def __exit__(self, exc_type, exc_val, exc_tb):
if exc_type is not None: # 发生异常时
