def union(self, *sets):
        if self._all_redis(sets):
            return self.client.sunion(*self._to_keys(sets))
        else:
            return reduce(operator.or_, (self.value,) + sets)