繁体   English   中英

如何导入__init__.py中定义的变量?

[英]How to import variables defined in __init__.py?

我对导入工作有点困惑。 假设:

package/
    __init__.py
    file1.py

__init__.py

from file1 import AClass
__version__ = '1.0'

file1.py

Class AClass(object):
    def bar():
        # I want to use __version__here, but don't want to pass
        # it through the constructor. Is there any way?
        pass

如果我使用from . import __version__ file1.py from . import __version__只是说ImportError: cannot import name __version__

你有一个循环依赖,因为两个文件都试图互相import __version__移动到一个单独的模块,比如package/version.py ,然后将其导入到其他模块中

from .version import __version__

尝试:

__version__ = '1.0'
from file1 import AClass

您需要在导入模块之前分配常量,以便在尝试导入模块时它就位。

编辑: larsmans建议避免循环依赖是一个好主意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM