Note that there are some explanatory texts on larger screens.

plurals
  1. POPython: Classname same as file/module name leads to inheritance issue?
    primarykey
    data
    text
    <p>My code worked fine when it was all in one file. Now, I'm splitting up classes into different modules. The modules have been given the same name as the classes. Perhaps this is a problem, because <code>MainPage</code> is failing when it is loaded. Does it think that I'm trying to inherit from a module? Can module/class namespace collisions happen?</p> <p><strong>MainPage.py</strong></p> <pre><code>import BaseHandler from models import Item from Utils import render class MainPage(BaseHandler): def body(self, CSIN=None): #@UnusedVariable self.header('Store') items = Item.all().order('name').fetch(10) render('Views/table.html', self, {'items': items}) self.footer() </code></pre> <p><strong>BaseHandler.py</strong></p> <pre><code>from google.appengine.ext import webapp from google.appengine.api import users from Utils import * # Controller class BaseHandler(webapp.RequestHandler): # ... continues ... </code></pre> <p><strong>Failure Traceback:</strong></p> <pre><code>Traceback (most recent call last): File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3180, in _HandleRequest self._Dispatch(dispatcher, self.rfile, outfile, env_dict) File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3123, in _Dispatch base_env_dict=env_dict) File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 515, in Dispatch base_env_dict=base_env_dict) File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2382, in Dispatch self._module_dict) File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2292, in ExecuteCGI reset_modules = exec_script(handler_path, cgi_path, hook) File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2188, in ExecuteOrImportScript exec module_code in script_module.__dict__ File "C:\Users\odp\workspace\Store\src\Main.py", line 5, in &lt;module&gt; import MainPage File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1267, in Decorate return func(self, *args, **kwargs) File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1917, in load_module return self.FindAndLoadModule(submodule, fullname, search_path) File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1267, in Decorate return func(self, *args, **kwargs) File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1819, in FindAndLoadModule description) File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1267, in Decorate return func(self, *args, **kwargs) File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1770, in LoadModuleRestricted description) File "C:\Users\odp\workspace\Store\src\MainPage.py", line 10, in &lt;module&gt; class MainPage(BaseHandler): TypeError: Error when calling the metaclass bases module.__init__() takes at most 2 arguments (3 given) </code></pre> <p><strong>UPDATE</strong> I appear to have solved it. This import works much better:</p> <pre><code>from BaseHandler import BaseHandler </code></pre> <p>Is it bad style to have the module and class name be the same?</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload