Python - 存在一个在对象未实现函数时调用的函数?

Luc*_*hez 7 python oop function

在Smalltalk中,有一条消息DoesNotUnderstand在对象不理解消息时被调用(这是当对象没有发送消息时).

所以,我想知道在python中是否有一个函数可以做同样的事情.

在这个例子中:

class MyObject:
    def __init__(self):
        print "MyObject created"

anObject = MyObject() # prints: MyObject created
anObject.DoSomething() # raise an Exception
Run Code Online (Sandbox Code Playgroud)

那么,我可以添加一个方法,MyObject以便知道何时DoSomething被调用?

PS:抱歉我的英语不好.

luc*_*luc 7

以下是您想要做的事情:

class callee:
    def __init__(self, name):
        self.name = name

    def __call__(self):
        print self.name, "has been called"


class A:
    def __getattr__(self, attr):
        return callee(attr)

a = A()

a.DoSomething()
>>> DoSomething has been called
Run Code Online (Sandbox Code Playgroud)