def __getitem__(self, item):
        if isinstance(item, str):
            # If our DynamoType is a map it should be subscriptable with a key
            if self.type == DDBType.MAP:
                return self.value[item]
        elif isinstance(item, int):
            # If our DynamoType is a list is should be subscriptable with an index
            if self.type == DDBType.LIST:
                return self.value[item]
        raise TypeError(
            "This DynamoType {dt} is not subscriptable by a {it}".format(
                dt=self.type, it=type(item)
            )
        )