绕过__all__有可能吗?

时间:2015-09-17 11:37:10

标签: python python-2.7

通过导入,我需要访问“私有”函数(优化Scipy模块中的_minimize_cg),但此私有函数不在__all__定义中(当然)。 是否可以绕过这种“保护”来访问该功能。

https://github.com/scipy/scipy/blob/v0.14.0/scipy/optimize/optimize.py#L1101

来自scipy.optimize import _minimize_cg

- > ImportError:无法导入名称_minimize_cg

感谢。

PS:Python 2.7

1 个答案:

答案 0 :(得分:3)

__all__仅在使用from module import *导入时受到影响。如果您只是明确地导入模块或模块成员,那么它没有效果:

from module import memberThatIsNotInAll

import module
module.memberThatIsNotInAll

它不是保护或访问修饰符,它只是在从模块导入所有内容时避免命名空间污染的设置。