在 python 中,通常的做法是拥有一堆实现各种功能的模块,然后拥有一个模块作为所有功能的访问点。这基本上是门面模式。
一个例子:假设你正在编写一个包foo
,其中包括bar
、baz
和moo
模块。
~/project/foo
~/project/foo/__init__.py
~/project/foo/bar.py
~/project/foo/baz.py
~/project/foo/moo.py
~/project/foo/config.py
你通常会这样写__init__.py
:
from foo.bar import func1, func2
from foo.baz import func3, constant1
from foo.moo import func1 as moofunc1
from foo.config import *
现在,当你想使用你刚刚做的功能时
import foo
foo.func1()
print foo.constant1
# assuming config defines a config1 variable
print foo.config1
如果你愿意,你可以安排你的代码,这样你只需要编写
import foo
在每个模块的顶部,然后通过foo
它访问所有内容(您可能应该将其命名为“全局”或类似的名称)。如果你不喜欢命名空间,你甚至可以这样做
from foo import *
并将一切都作为全球性的,但这真的不推荐。请记住:命名空间是一个很棒的主意!