code: def nodes_on_bdry(self):
          
          if self.size == 0:
              return True
  
          nodes_on_bdry = []
          for on_bdry in self.nodes_on_bdry_byaxis:
              left, right = on_bdry
              if left == right:
                  nodes_on_bdry.append(left)
              else:
                  nodes_on_bdry.append((left, right))
          if all(on_bdry == nodes_on_bdry[0] for on_bdry in nodes_on_bdry[1:]):
              return nodes_on_bdry[0]
          else:
              return tuple(nodes_on_bdry)
docs: Encoding of grid points lying on the boundary.
  
          Examples
          --------
          Using global option (default ``False``):
  
          >>> part = odl.nonuniform_partition([0, 2, 3], [1, 3])
          >>> part.nodes_on_bdry
          False
          >>> part = odl.nonuniform_partition([0, 2, 3], [1, 3],
          ...                                 nodes_on_bdry=True)
          >>> part.nodes_on_bdry
          True
  
          ``False`` in axis 0, ``True`` in axis 1:
  
          >>> part = odl.nonuniform_partition([0, 2, 3], [1, 3],
          ...                                 nodes_on_bdry=[False, True])
          >>> part.nodes_on_bdry
          (False, True)
  
          In axis 0, ``False`` left and ``True`` right, in axis 1 ``False``:
  
          >>> part = odl.nonuniform_partition([0, 2, 3], [1, 3],
          ...                                 nodes_on_bdry=[[False, True],
          ...                                                False])
          >>> part.nodes_on_bdry
          ((False, True), False)