title: __subclasses__ not showing anything
body: <p>I'm implementing a function that returns an object from the appropriate subclass. If I move <code>SubClass</code> from <code>base.py</code>, no subclasses appear for <code>__subclasses__</code>. Are they required to be in the same file?
  Perhaps the fact that I'm never importing directly <code>subclass.py</code> hides the subclass from python? What can I do? I have even checked the attribute <code>__mro__</code> and <code>get_subclass</code> points to the right class.</p>
  
  <pre class="lang-python prettyprint-override"><code># project/main.py
  from project.src.base import get_subclass
  
  obj = get_subclass(cls,name) # Returns an object of a subclass of cls
  
  # project/src/subclass.py
  from project.src.base import BaseClass
  
  class SubClass(BaseClass):
      pass
  
  # project/src/base.py
  def get_subclass(cls,name):
      subclss = cls.__subclasses__ # This is returning an empty list
      pass
  
  class BaseClass(object):
      pass
  </code></pre>