@_require_equal_type
    def __sub__(self, other: Qobj | numbers.Number) -> Qobj:
        if other == 0:
            return self.copy()
        return Qobj(_data.sub(self._data, other._data),