class_docstr: Super class for all Vector classes.
  Ideally, neither this class nor any of its subclasses should be
  instantiated by the user.
class_docstr_tok: ["Super","class","for","all","Vector","classes",".","Ideally",",","neither","this","class","nor","any","of","its","subclasses","should","be","instantiated","by","the","user","."]
docstr: Returns the outer product of this vector with another, in the
  form of a Dyadic instance.
  
  Parameters
  ==========
  
  other : Vector
      The Vector with respect to which the outer product is to
      be computed.
  
  Examples
  ========
  
  >>> from sympy.vector import CoordSys3D
  >>> N = CoordSys3D('N')
  >>> N.i.outer(N.j)
  (N.i|N.j)
code: def outer(self, other):
      """
      Returns the outer product of this vector with another, in the
      form of a Dyadic instance.
  
      Parameters
      ==========
  
      other : Vector
          The Vector with respect to which the outer product is to
          be computed.
  
      Examples
      ========
  
      >>> from sympy.vector import CoordSys3D
      >>> N = CoordSys3D('N')
      >>> N.i.outer(N.j)
      (N.i|N.j)
  
      """
  
      # Handle the special cases
      if not isinstance(other, Vector):
          raise TypeError("Invalid operand for outer product")
      elif isinstance(self, VectorZero) or isinstance(
          other, VectorZero
      ):
          return Dyadic.zero
  
      # Iterate over components of both the vectors to generate
      # the required Dyadic instance
      args = [
          (v1 * v2) * BaseDyadic(k1, k2)
          for (k1, v1), (k2, v2) in product(
              self.components.items(), other.components.items()
          )
      ]
  
      return DyadicAdd(*args)
  
imports: from __future__ import annotations
  from itertools import product
  from sympy.core.add import Add
  from sympy.core.assumptions import StdFactKB
  from sympy.core.expr import AtomicExpr, Expr
  from sympy.core.power import Pow
  from sympy.core.singleton import S
  from sympy.core.sorting import default_sort_key
  from sympy.core.sympify import sympify
  from sympy.functions.elementary.miscellaneous import sqrt
  from sympy.matrices.immutable import ImmutableDenseMatrix
  from sympy.vector.basisdependent import BasisDependentZero, BasisDependent, BasisDependentMul, BasisDependentAdd
  from sympy.vector.coordsysrect import CoordSys3D
  from sympy.vector.dyadic import Dyadic, BaseDyadic, DyadicAdd
label_desc: Use image node_id 8 for calling the Vector obj's underlying member method code with example usage: obj.outer(other) and returns: DyadicAdd, Dyadic