title: What would be the proper naming convention for a Python module, class and instance variable having the same base name?
body: <p>First, I am fully aware about <a href="http://www.python.org/dev/peps/pep-0008/" rel="nofollow">PEP8</a>, but sometimes it isn't very clear about how should you name things.</p>
  
  <p>Let's assume we have <code>ABC</code> as an abbreviation.</p>
  
  <ul>
  <li><strong>Module</strong> should be named: <code>abc</code></li>
  <li><strong>Class</strong> inside the module should be named: <code>Abc</code> or <code>ABC</code>? (not sure)</li>
  <li><strong>Instance</strong> variable should be named <code>abc</code> </li>
  </ul>
  
  <pre><code># abc.py
  CONSTANT = "foo"
  class Abc(object):
      pass
  
  # test.py
  import abc
  
  print abc.CONSTANT
  abc_ = abc.Abc() # oops, if I use `abc` will lose ability to access abc.FOO ?
  </code></pre>
  
  <p>If you have a constant inside the <code>abc</code> module, you may want to access it using <code>abc.CONSTANT</code> from outside but if you also have the instance with the same name it will not be clear?</p>
  
  <p>If there a clean way to solve this kind of problem? Is the solution different if instead of an acronym you just have a simple word?</p>
  
  <p>Note: <code>Abc()</code> class acts most of the time as Singleton, so for this reason I wasn't able to find another name for the instance.</p>