<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def run(self, *args, backend=None, **kwargs):
 """Run the circuit. `Circuit` have several backends. When `backend` parameter is specified, use specified backend, and otherwise, default backend is used. Other parameters are passed to the backend. The meaning of parameters are depends on the backend specifications. However, following parameters are commonly used. Commonly used args (Depends on backend):
 shots (int, optional):
 The number of sampling the circuit. returns (str, optional):
 The category of returns value. e.g. "statevector" returns the state vector after run the circuit. "shots" returns the counter of measured value. token, url (str, optional):
 The token and URL for cloud resource. Returns: Depends on backend. Raises: Depends on backend. """

        if backend is None:
            if self._default_backend is None:
                backend = self.__get_backend(DEFAULT_BACKEND_NAME)
            else:
                backend = self.__get_backend(self._default_backend)
        elif isinstance(backend, str):
            backend = self.__get_backend(backend)
        return backend.run(self.ops, self.n_qubits, *args, **kwargs)