【发布时间】:2015-05-05 06:14:22
【问题描述】:
我正在开发一个非常庞大的 Python 包。在几个模块中,不同的程序员导入其他模块进行计算。为了这个讨论,让我们坚持numpy。
通常的做法是,在导入模块时定义一个别名以便于编程,所以假设在模块foo.py 中有一行在做
import numpy as np
所以会有一个foo.np 命名空间。我还发现,通过删除对foo.py 中的np 的引用,这样做
del np
在模块的末尾似乎也清除了命名空间。
作为一个大型包的维护者,我喜欢这种保持命名空间干净的方式,但我想知道这是否是一种好的编程习惯,或者是否会出现问题,特别是如果我的包有一个模块 bar.py 与foo.py 也使用相同的外部numpy 模块?如果是,是否有一种简单且更好的方法来保持 foo 和 bar 的命名空间干净,或者这种命名空间管理本身是一个坏主意?
【问题讨论】:
标签: python module namespaces package