Python里__all__变量的作用

在Python的模块里,要想像C语言编写的DLL动态连接库一样,可以提供函数的接口名称,就需要使用__all__变量了。通过这个特性,可以控制哪些函数被外面引用,哪些不能看见。这对一个大工程的软件来说是至关重要,因为没有控制的暴露,会导致别的软件开发人员乱用,从而让软件调用之间出现隐形的问题。比如只给出一个接口的组件,肯定比给出一千个接口的组件使用起来简单。因此,在一个团队的开发配合中,一定要明确这样一条准则:能少不能多,够用就好。把无关重要的接口暴露出来,就会导致更多的问题。

__all__ = ['test1']



def test1():

        print("-----test1-----")



def test2():

        print("-----test2-----")

在这段代码里,只暴露了test1接口,而test2接口看不到。在模块的一开始定义 __all__ 变量,import该模块后,只能找到 __all__中存在的变量或者函数,其他的不能调用。

 

不像 C或者 Java,Python 没有语言原生的可见性控制,而是靠一套需要大家自觉遵守的”约定“下工作。比如下划线开头的应该对外部不可见。同样,__all__ 也是对于模块公开接口的一种约定,比起下划线,__all__ 提供了暴露接口用的”白名单“。一些不以下划线开头的变量(比如从其他地方 import 到当前模块的成

©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值