对于from ModuleName import * 这种形式,要特别注意重名现象。
Python中,对于一个模块,具有一个名为
__all__的属性,该属性的值就是被from ModuleName import
*这样的语句绑定的属性列表;否则,这种类型的from语句将绑定模块中除了以下划线开始的属性(私有属性)外的所有属性。这样的话,对于同一个名空间里
面出现重名现象的概率就加大了,为了减少这种情况的发生,都会在模块开始处定义__all__属性的内容,写出可以被这种from类型导入的属性,可以参
考shutil.py的写法。
下面的是os.py里面的一段代码:
__all__ = ["altsep", "curdir", "pardir", "sep", "pathsep", "linesep",
"defpath", "name", "path", "devnull"]
阅读(1309) | 评论(0) | 转发(0) |