title: Change imported modules imports
body: <p>How is it possible to change the imports of a imported module?</p>
  
  <p>I created a package which I want to extend in a further project.
  The imported package looks like this:</p>
  
  <pre><code>/pck_name
     /__init__.py
     /point.py
     /triangle.py
  </code></pre>
  
  <p>the point.py:</p>
  
  <pre><code>class Point(object):
      def __init__(self, name='test'):
          self.name = name
  </code></pre>
  
  <p>the triangle.py:</p>
  
  <pre><code>from pck_name.point import Point
  
  class Triangle(object):        
      def __init__(self, points=None):    
          if points is None:
              points = list()
              for i in range(2):
                  points.append(Point())         
          self.points = points   
  </code></pre>
  
  <p>then I have an other project where I define a NewPoint class with a new Method:</p>
  
  <pre><code>class NewPoint(object):    
      def __init__(self, name='test'):
          self.name = name
  
      def print_name(self):
          print(self.name)
  </code></pre>
  
  <p>what I want to achive is to import pck_name.triangle and change the imported Point with the NewPoint to get the new functionality:</p>
  
  <pre><code>from pck_name.triangle import Triangle
  
  triangle = Triangle()
  triangle.points[0].print_name()
  </code></pre>
  
  <p>I tried monkey-patching but if I patch the Point class it is useless as the import statement in triangle.py always imports the original Point class.</p>
  
  <p>Thank you very much!</p>