私はこのコードを持っています:
class A:
def __init__(self):
def method(self, item):
print self, ": Getting item", item
self.__getitem__ = types.MethodType(method, self, self.__class__)
class B(object):
def __init__(self):
def method(self, item):
print self, ": Getting item", item
self.__getitem__ = types.MethodType(method, self, self.__class__)
次に、これは正常に機能します。
a = A()
a[0]
しかし、これはしません:
b = B()
b[0]
TypeErrorを発生させます。
新しいスタイルのクラスは、インスタンス__dict__ではなくクラス__dict__で魔法のメソッドを探すことがわかりました。これは正しいですか?なんでそうなの?背後にある考え方を説明している記事を知っていますか?私はRTFMを試しましたが、おそらく正しいものではなかったか、物事を捕まえませんでした...
どうもありがとうございます!ポール