[ ]
周飒博客-ZhouSa.com 1. 结语
1.1. 语言设计的一致性
python是真正面向对象的编程语言,它的内部什么都是对象,这点在模块上提现非常深刻,因为即便是非常特使的模块也是对象.模块的导入过程也都是利用的接口一致性. 这让语言的扩展更加简单.
1.2. 模块导入的最佳实践
这边只是分享个人习惯,一家之言而已.
我个人认为:
直接使用
import xxxxx
这种方式是最安全也最具扩展性的,但它有一个缺点太过明显让我放弃了这种方式--当模块层级很深时每次调用其中方法都需要写一串非常长的名字.这非常影响可读性
使用
from xxxx import *
这种方式最不可取,他会污染当前模块的命名空间,但它有其应用场景,就是在多层的包中,如果
__init__.py
只是为了将下层子模块中的内容导入上层,那么只要下层子模块定义好了__all__
,就可以使用 这种方式做模块/框架开发的可以使用,不建议大型多人合作的项目这样用.
我的个人风格是这样写的:
from xxx import ( A, B, C )
个人认为这种写法最为清晰直接,可以很清楚的知道命名空间中哪些是来自外部模块的,而且如果不需要某个依赖了也可以先通过注释的方式进行检测.
还没有评论,来说两句吧...