我的 Python 类看起来有点像这样:
class some_class:
def __getattr__(self, name):
# Do something with "name" (by passing it to a server)
有时,我正在使用ptpython
(交互式 Python shell)进行调试。ptpython
检查类的实例并尝试访问__objclass__
不存在的属性。在__getattr__
,我可以if name != "__objclass__"
在使用之前简单地检查一下name
,但我想知道是否有更好的方法通过正确实现或以某种方式存根__objclass__
。
Python文档并没有说太多,或者至少我不明白我必须做什么:
该属性
__objclass__
被inspect
模块解释为指定定义该对象的类(适当地设置它可以帮助动态类属性的运行时自省)。对于可调用对象,它可能指示期望或需要给定类型(或子类)的实例作为第一个位置参数(例如,CPython 为在 C 中实现的未绑定方法设置此属性)。