[英]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.