python学习---【__all__】

        python包中都会有一个__init__.py的模块,这个模块是区分该父文件是一个python包,或是一个文件目录。这个__init__.py可以是空,也可以添加内容,最常见的就是其中的__all__变量。

        __all__变量的影响是(from json import *)的导入,对其他的导入方式没有影响,当__init__.py模块中没有__all__变量的时候,我们在导入模块的时候(来自json import *)会将该包下的所有公有类,属性,方法:


在__init__py中添加__all__变量,并且使__all__ = ['dump','dumps','load','loads','JSONDecoder','JSONDecodeError','JSONEncoder',]再次导入


会发现导入的类只有__all__这个变量中添加的内容。

        __all__变量在上面例子中指向的是一个包含字符串元素的列表类的对象,如果我们将__all__变量赋值为其他的类对象如元组:


会出现报错,因为__all__变量只能指向一个列表类对象,同时不能以列表推导式的方式进行赋值。

如果有错的地方请指出,谢谢!

转载于:https://www.cnblogs.com/jack-z/p/10446566.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值