-1

可能是愚蠢的问题,我在这里阅读了许多类似的主题,但仍然无法理解答案:

在 main.py

from userMod import *

class Handler(webapp2.RequestHandler):
    def write(self): #some code here etc

在 userMod.py

class signup(Handler):
    def get(self): #some code here etc

我收到一条错误消息,指出未定义处理程序。我的简单但明显愚蠢的问题是如何从加载的模块中的父脚本访问类?还是我只需要在我创建的每个模块中复制 Handler ?

请记住,我对 Python 非常陌生,并试图通过拆分某些类型的函数(在本例中是我正在构建的站点的用户登录和注册组件)来使我的代码更加模块化。

4

2 回答 2

1

在 usermod.py 中,您需要导入 main,而不是相反。

于 2012-08-16T07:33:47.227 回答
1

在没有看到您的代码的情况下不能肯定地说,但是在那个非常基本的代码段中,您基本上已经反转了导入。@IgnacioVazquez-Abrams 提供了一个链接,该链接将描述整个过程(并且肯定比我能做的更好),但在基本层面上,每个模块都存在于自己的命名空间中,并且不知道其他模块,除非你告诉它他们。

因此,在您的情况下,当您 subclass 时Handler,该模块不知道是什么Handler,因为它 1.) 不是内置的,并且 2.) 尚未导入。试试这个usermod.py

import main

class signup(main.Handler):
    def get(self): #some code here etc

看看它是否符合您的要求。

于 2012-08-16T07:37:47.600 回答