导入类在同一模块文件中定义?

时间:2013-02-07 22:47:03

标签: python

我有一个名为mymodule.py的模块文件,其中包含以下代码:

class foo:
    def __init__(self):
        self.foo = 1

class bar:
    import foo
    def __init__(self):
        self.bar = foo().foo

同一目录中的__init__.py文件具有

from mymodule import foo

从同一目录中的脚本,我有以下代码:

from mymodule import bar

当我尝试运行bar()时,我收到错误No module named foo。如果在同一模块文件中定义foo bar,我怎么能在{{1}}创建一个实例?

2 个答案:

答案 0 :(得分:5)

首先使用模块名称导入类。但是,您不需要在mymodule中导入mymodule中的类,只需使用它即可。 含义:删除导入foo行

答案 1 :(得分:5)

您无需导入在同一模块中定义的对象:

class foo:
    def __init__(self):
        self.foo = 1

class bar:
    def __init__(self):
        self.bar = foo().foo

import语句仅适用于其他文件中定义的对象;将另一个python文件中定义的名称导入当前模块。