def __getitem__(self, key):
    ret = super(Vector, self).__getitem__(key)
    return (Vector(*ret, smart=self.smart) if isinstance(key, slice) else ret)
def __getitem__(self, key):
    ret = super(Vector, self).__getitem__(key)
    return (Vector(*ret, smart=self.smart) if isinstance(key, slice) else ret)