class foo(Object):
def function_classic():
print('Нормально вызывается, все как обычно')
def any_other(*args):
print('Вызывается при обращении к любому методу кроме function_classic')
myotherclass.catcher('Здесь какой-то обработчик необычного обращения или любой другой код')
class Foo(object):
def __init__(self, value):
self.value = value
def __getattr__(self, name):
return lambda: print("'{0}' doesn't exists!".format(name))
foo = Foo(10)
print(foo.value)
foo.some_function()
>>> class Foo:
def __getattr__(self, item):
return lambda: item
>>> foo = Foo()
>>> foo.a
Out[8]: <function __main__.Foo.__getattr__.<locals>.<lambda>>
>>> foo.a()
Out[9]: 'a'