python中执行obj.attr时,将调用特殊方法obj.__getattribute__('attr'),该方法执行搜索来查找该属性,通常涉及检查特性.查找实例字典.查找类字典以及搜索基类.如果搜索过程失败,最终会尝试调用类的__getattr__()方法.如果这也失败,则抛出AttributeError异常. 具体步骤如下: 1.如果attr是个特殊属性(例如python提供的),直接返回. 2.在obj.__class__.__dict__即类字典中查找attr,如果attr是个data