从导入的模块调用类

时间:2012-08-16 07:24:41

标签: python

可能是个愚蠢的问题,我在这里读过很多类似的帖子,但仍然无法理解答案:

在main.py中

from userMod import *

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

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

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

所以在你的情况下,当你继承Handler时,模块不知道Handler是什么,因为它1.)不是内置的,而且2.)还没有进口。请在usermod.py中尝试此操作:

import main

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

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