@TullyPython 也是支持面向方面程序设计的 中发帖

Python 丰富的元对象协议极大限度地扩展了 Python 语言的能力,使开发者方便地自定义 Python 对象的运行行为,便于处理横切关注点,进行面向方面程序设计 (Aspect-Oriented Programming, AOP)。 
具体来说,元对象协议允许开发者:

修改对象在定义和运行时的行为,有助于便捷地为类添加新的功能;
通过反射 (reflection) 获取对象的运行时信息,检查或修改对象的属性和方法,细粒度地控制运行时的行为。


如,使用 __getattr__()、__call__()、__setattr__() 和 hasattr() 等方法,拦截对方法的调用、对属性的访问等,在其前后插入切面逻辑,实现 AOP 的灵活性。

在这个过程中,装饰器 (decorator) 是 AOP 思想的简便实现。在不修改核心业务逻辑的情况下,允许在函数或方法调用的前后非侵...