导入同一modu中定义的类

2024-10-03 09:20:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我在使用模块中定义的类时遇到问题。我看过this stackoverlfow post,答案似乎是“你不需要导入”,这绝对不是我正在经历的行为。我使用的是python3.3。以下是我的目录结构:

root/
    __init__.py
    mlp/
        __init__.py
        mlp.py
        layers/
            __init__.py
            hidden_layer.py
            dropout_layer.py

我的问题是:dropout_layer.py中定义的类扩展了hidden_layer.py中的类,但是当我尝试导入隐藏层时,根据执行代码的目录,有时会出现错误。例如,from layers.hidden_layer import HiddenLayer然后我运行我的代码,如果我从root/mlp执行它。但是,如果从root执行代码,则此导入不起作用。这对我来说是奇怪的行为。我怎样才能让它正常工作?你知道吗

我唯一的非空__init__.py文件位于root/mlp/layers/

# root/mlp/layers/__init__.py
__all__ = ['hidden_layer', 'dropout_layer']

Tags: 模块代码py目录layer定义initlayers