Наследование в web.py?

В настоящее время я разрабатываю приложение wep.py. Это мое веб-приложение, связанное с web.py и wsgi.

корень / main.py

import web import sys import imp import os sys.path.append(os.path.dirname(__file__)) #from module import module from exam import exam urls = ( '/exam', 'exam' ) application = web.application(urls, globals(), autoreload = True).wsgifunc() 

Мое приложение имеет абстрактный класс, называемый module в module.py в корневом каталоге, и его назначение наследуется модулями.

корень / module.py

 class module: def fetchURL(self, url): # ... return content 

Модуль нижнего уровня, называемый «экзамен», наследует модуль

root / exam / init .py

 from module import module class exam(module): def getResults(self): # error occurs here self.fetchURL('math.json') 

Когда я вызываю родительский метод, web.py вызывает исключение

WalkerError: («неожиданный тип узла», 339)

Окружающая среда: Python 2.5

Как я могу решить проблему? благодаря

// EDIT 03 июля 10:22 GMT + 0

Трассировка стека выглядит следующим образом

  mod_wsgi (pid=1028): Exception occurred processing WSGI script 'D:/py/labs_library/index.py'. Traceback (most recent call last): File "D:\csvn\Python25\lib\site-packages\web\application.py", line 277, in wsgi result = self.handle_with_processors() File "D:\csvn\Python25\lib\site-packages\web\application.py", line 247, in handle_with_processors return process(self.processors) File "D:\csvn\Python25\lib\site-packages\web\application.py", line 244, in process raise self.internalerror() File "D:\csvn\Python25\lib\site-packages\web\application.py", line 467, in internalerror return debugerror.debugerror() File "D:\csvn\Python25\lib\site-packages\web\debugerror.py", line 305, in debugerror return web._InternalError(djangoerror()) File "D:\csvn\Python25\lib\site-packages\web\debugerror.py", line 290, in djangoerror djangoerror_r = Template(djangoerror_t, filename=__file__, filter=websafe) File "D:\csvn\Python25\lib\site-packages\web\template.py", line 845, in __init__ code = self.compile_template(text, filename) File "D:\csvn\Python25\lib\site-packages\web\template.py", line 924, in compile_template ast = compiler.parse(code) File "D:\csvn\Python25\lib\compiler\transformer.py", line 51, in parse return Transformer().parsesuite(buf) File "D:\csvn\Python25\lib\compiler\transformer.py", line 128, in parsesuite return self.transform(parser.suite(text)) File "D:\csvn\Python25\lib\compiler\transformer.py", line 124, in transform return self.compile_node(tree) File "D:\csvn\Python25\lib\compiler\transformer.py", line 167, in compile_node raise WalkerError, ('unexpected node type', n) WalkerError: ('unexpected node type', 339) 

Если это возможно, я хотел бы отключить функциональность шаблона, поскольку я использую python только для вывода JSON для мобильного приложения.

One Solution collect form web for “Наследование в web.py?”

если вы создадите модуль python, вы должны добавить __init__.py в верхней части своей иерархии:

 dvedit/ __init__.py clipview.py filters/ __init__.py 

это означает, что в каждом каталоге, который будет импортироваться from ... import ... должен иметь файл __init__.py .

Дополнительная информация доступна: http://wiki.cython.org/PackageHierarchy

Python - лучший язык программирования в мире.