Supongamos que la clase siguiente:¿por qué __getitem__ no puede ser classmethod?
class Class(object):
@classmethod
def getitem(*args):
print 'getitem %s' % (args,)
@classmethod
def __getitem__(*args):
print '__getitem__ %s' % (args,)
El método GetItem se comporta como se esperaba: recibe Class
como primer argumento, pero __getitem__
recibe type
como primer argumento:
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')
¿Cuál es la magia que hay detrás de __getitem__
?
'Pensando en Class como una instancia de tipo'. Gracias. Gracias. Gracias. – norbertpy