作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
对于另一个 __init__.py
问题,我深表歉意。
我有以下包结构:
+contrib
+--__init__.py
|
+database
+--__init__.py
|
+--connection.py
在顶层 __init__.py
我定义:USER='me'
。如果我从命令行import contrib
,那么我可以访问contrib.USER
。
现在,我想从 connection.py
访问 contrib.user
但我做不到。
当我发出 from contrib.database import connection
时调用顶层 __init__.py
,因此 Python 实际上是在创建参数 USER
.
所以问题是:如何从 children 中访问在顶级 __init__.py
中声明的参数和变量。
谢谢。
编辑:
我意识到您可以将 import contrib
添加到 connection.py
,但它似乎是重复的,因为很明显(不正确?)如果您需要 connection.py
您已经导入了 contrib
。
最佳答案
将 import contrib
添加到 connection.py
是可行的方法。是的,contrib
模块已经导入(您可以从sys.modules
中找到)。问题是您的代码在 connection.py 中没有引用该模块。做另一个导入会给你引用。您无需担心额外的加载时间,因为模块已经加载。
关于python - 如何从包的更深部分访问 __init__.py 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2860482/
我是一名优秀的程序员,十分优秀!