How to determine in __getattr__ was called (not defined) property or method with parameters

Viewed 37
class Test:

    def test(self, name, idx=0):
        return idx

    def __getattr__(self, name):

        def wrapper(*args, **kw):
            return self.test(name, *args, **kw)

        return wrapper

t = Test()
print('PROPERTY ', t.attr)
print('METHOD ', t.attr(1))
print('METHOD ', t.attr())

The above code returns:

PROPERTY <function Test.getattr..wrapper at 0x0000000001D161F0>

METHOD 1

METHOD 0

I would like to have:

PROPERTY 0

METHOD 1

METHOD 0

0 Answers
Related