- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个看起来像这样的__init__.py
__init__.py
:
__all__ = ['cooling', 'counters']
我的目录结构如下:
example_dir/
__init__.py
cooling.py
power.py
counters.py
当我尝试导入 example_dir
时,Python 不会导入cooling
和counters
。它什么也不导入。使用 Pdb,我看到它读取 __init__.py
但它拒绝读取 __all__
变量。
我使用 imp.load_module
加载模块
我的整个程序:
def import_module(name, path=None):
parts = name.split('.')
module_name = ""
for index, part in enumerate(parts):
module_name = part if index == 0 else '%s.%s' % (module_name, part)
if path is not None:
path = [path]
fh, path, descr = imp.find_module(part, path)
mod = imp.load_module(module_name, fh, path, descr)
return mod
def load_module(name):
try:
mod = None
mod = sys.modules[name]
except KeyError:
mod = import_module(name)
finally:
if not mod:
raise ImportError('unable to import module %s' % name)
return mod
load_module('example_dir')
最佳答案
我认为您可能误解了 __all__
的作用......
在__init__.py
中,您想要实际导入所需的模块。例如
# __init__.py
import example_dir.cooling as cooling
import example_dir.counters as counters
另一方面,
__all__
表示当用户写入 from ... import *
时应导入当前模块中的哪些名称。
简而言之,__all__
与导入的模块无关,只与导入模块后可用的名称有关(并且那么,仅当用户从模块导入所有内容时)。
关于python - __init__.py 中未选取 __all__ 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27850733/
在下面的代码中,我想不必添加undefined作为filteredDevice的类型注解。我认为一个被过滤的设备不应该是未定义的,因为我过滤掉了未定义的设备。 但是如果我删除 undefined类型注
我有一个 UIButton,其文本来自服务器。按钮的宽度是固定的。我想要的是,如果按钮的文本超过按钮的宽度,文本应该在按钮内选取框。如果文本适合按钮宽度,则不应有选取框效果。 我点击了一些链接(one
我正在从头开始实现 webgl 选取,并决定走 GLSL 路线,而不是光线相交测试。 所以我将整个场景渲染到一个单独的帧缓冲区中,为每个对象分配一个唯一的颜色,该颜色作为统一变量传递给片段着色器。当场
例如,我有包含多个对象的数组, var arr = ["a", "b", "c", "d"]; 我想要的是从该数组中选取 2 个随机对象,例如“a”和“c”,并将这 2 个对象推送到另一个数组中,例如
我是一名优秀的程序员,十分优秀!