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