title: Should Python modules import the modules they semantically depend on?
body: <p>Should Python modules <code>import</code> the modules they semantically depend on?</p>
  
  <p>For example:</p>
  
  <p>module <code>a</code>:</p>
  
  <pre><code>class A(object):
      ...
      def foo(self):
          ...
  </code></pre>
  
  <p>module <code>b</code>:</p>
  
  <pre><code>import a
  
  def f(a_instance):
      a_instance.foo()
      ...
  </code></pre>
  
  <p>The first line of module <code>b</code> is unnecessary, strictly speaking, but I wonder if it's considered good form in Python?</p>