Pythonで簡単な例を見てみましょう:
>>> class A(object):
... pass
...
>>> def f(self):
... print "f called"
...
>>> A.f = f
>>> a = A()
>>> a.f()
f called
したがって、この例では、既存のクラスA
が追加の (インスタンス) 関数を取得しますf
(ただし、既存のクラスをオーバーライドしても同様に機能します)。実際には、これはもちろん異なるモジュールなどで発生します。しかし、この手順はどのように呼び出されるのでしょうか?