python文件名和类名需要一致吗_Python:类名与文件/模块名相同会导致继承问题?...

我的代码在一个文件中运行良好。现在,我把课程分成不同的模块。这些模块被赋予了与类相同的名称。也许这是个问题,因为MainPage在加载时失败。它认为我是在试图继承一个模块吗?模块/类命名空间是否会发生冲突?

MainPage.pyimport 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()

BaseHandler.pyfrom google.appengine.ext import webapp

from google.appengine.api import users

from Utils import *

# Controller

class BaseHandler(webapp.RequestHandler):

# ... continues ...

故障回溯: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

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

class MainPage(BaseHandler):

TypeError: Error when calling the metaclass bases

module.__init__() takes at most 2 arguments (3 given)

更新我似乎解决了这个问题。这种导入效果更好:from BaseHandler import BaseHandler

模块和类名相同是不是不好?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值