所有特殊变量

模块可以有一个名为 __all__ 的特殊变量来限制使用 from mymodule import *时导入的变量。

给出以下模块:

# mymodule.py

__all__ = ['imported_by_star']

imported_by_star = 42
not_imported_by_star = 21

使用 from mymodule import *时只导入 imported_by_star

>>> from mymodule import *
>>> imported_by_star
42
>>> not_imported_by_star
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'not_imported_by_star' is not defined

但是,not_imported_by_star 可以明确导入:

>>> from mymodule import not_imported_by_star
>>> not_imported_by_star
21