了解 getattr 的正确用法和 getattribute 可以是令人困惑。在本文中,我们将阐明这些方法之间的区别,并就何时应使用每种方法提供指导。
getattr 与 getattribute
何时定义getattr
getattr 方法旨在处理使用通常的属性解析机制找不到属性的情况。此功能使 getattr 成为实现缺失属性的回退机制的理想选择。
何时定义 getattribute
另一方面,getattribute__ 在解释器尝试直接访问对象的属性之前被调用。由于其早期调用,正确实现 __getattribute 可能具有挑战性,因为它很容易引入无限递归。
新式类
之间的区别🎜>getattr 和 getattribute 不仅仅基于关于该班级是否为新式班级。 Python 2.2 中引入的新型类以 object 作为其显式或隐式基类。然而,旧式与新式类的区别并不是选择
getattr而不是 __getattribute__ 的主要因素。选择 getattr
在大多数实际情况下, getattr 是更合适的选择。它允许对丢失的属性实施优雅的回退机制,而
getattribute 需要仔细实施以避免递归问题。以上是什么时候应该使用 getattr 以及什么时候应该使用 __getattribute__?的详细内容。更多信息请关注PHP中文网其他相关文章!