と仮定以下のクラス:予想通りなぜ__getitem__はclassmethodにできませんか?
class Class(object):
@classmethod
def getitem(*args):
print 'getitem %s' % (args,)
@classmethod
def __getitem__(*args):
print '__getitem__ %s' % (args,)
GetItemメソッドは動作します。それは、最初の引数としてClass
を受信しますが、最初の引数としてtype
を__getitem__
受け取る:
calling Class.getitem(test)
getitem (<class '__main__.Class'>, 'test')
calling obj.getitem(test)
getitem (<class '__main__.Class'>, 'test')
calling Class[test]
'type' object has no attribute '__getitem__'
calling obj[test]
__getitem__ (<class '__main__.Class'>, 'test')
__getitem__
の背後にあっ魔法は何ですか?
'クラスをインスタンスのインスタンスとして考える '。ありがとうございました。ありがとうございました。ありがとうございました。 – norbertpy