3

我有一个名为 的模块文件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。当它们在同一个模块文件中定义时,如何创建fooin的实例?bar

4

2 回答 2

5

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

于 2013-02-07T22:49:08.117 回答
5

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

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

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

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

于 2013-02-07T22:52:49.027 回答