我想__getattr__在类的实例化过程中进行更改。例如:
class AttrTest(object):
def __init__(self):
self.__getattr__ = self._getattr
def _getattr(self, attr):
print("Getting {}".format(attr))
Run Code Online (Sandbox Code Playgroud)
我本以为这会表现得像:
class AttrTest(object):
def __getattr__(self, attr):
print("Getting {}".format(attr))
Run Code Online (Sandbox Code Playgroud)
但事实并非如此。
例如,当我运行时:
>>> at = AttrTest()
>>> at.test
Run Code Online (Sandbox Code Playgroud)
我希望两个类都能打印Getting test,但顶级类会抛出一个AttributeError.
就不能__getattr__这样改吗?