salamer / jolla

Python Web Framework
http://salamer.github.io/jolla
Apache License 2.0
130 stars 19 forks source link

我来讨论一下 __init__.py 的内容吧 #5

Open Allianzcortex opened 8 years ago

Allianzcortex commented 8 years ago

init.py 一般有三种作用,除了标记 module 外,还能: ① 留空 ② 在 init.py 中引入所有的模块。import all modules ③ 在 init.py 中引入 key function 到 package namespace。好处在于当你重构了整个代码之后仍然有办法使得 API 保持稳定。(在 reddit 里的一个讨论帖里所提到的)

实际上我最喜欢的是第②和第③种,可以简化引入的模块。

所以从这点来看的话,在 init.py 里: ① 不用 import *,只要第一行就够了 ② 用 from .server import WebApp 来替代 from server import WebApp。前者是 explicit relative import,后者是 implicit relative import。虽然在同一个 module 里两种都是没有问题的,但 Pythonic~

salamer commented 8 years ago

我觉得。。。。无所谓吧。。。。。这个是依赖的问题。。。而且py的依赖本就。。。有坑。。。

Allianzcortex commented 8 years ago

还不睡啊。。我是在最近没事干的时候看 《Two Scopes Of Django》里翻到有这样一个注意事项,就顺便提了一下:-D