Python 模块管理与导入机制深度解析
1. 命名空间包的判断
在调试过程中,判断一个包是否为命名空间包至关重要。主要方法是检查其 __file__ 属性,若该属性缺失,则此包为命名空间包,这在字符串表示中会体现为 “namespace”。示例如下:
>>> import spam.custom
>>> import spam.grok
>>> import spam.blah
>>> spam.__file__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute '__file__'
>>> spam
<module 'spam' (namespace)>
2. 模块的重新加载
2.1 问题与解决方案
当对已加载模块的源代码进行修改后,若想重新加载该模块,可使用 imp.reload() 。示例代码如下:
>>> import spam
>>> import imp
>>> imp.reload(spam)
<module 'spam' f
超级会员免费看
订阅专栏 解锁全文
5万+

被折叠的 条评论
为什么被折叠?



