Python模块及__name__,__all__变量的用法

  • 我们都知道,Python中导入模块有两种方法,importfrom...impo...,其中,importfrom...import *都可以导入模块中的所有方法,但当导入的模块中有__all__魔术变量时,两者就有所不同了。
  • 假设模块test.py中有三个方法A,B,C,但是__all__ = ['A','B'],这样的话,如果某程序导入该模块的方法为import,仍然ABC三个函数都可以调用,但当导入模块的方法是from...import *时,只能调用变量__all__中的A,B两个函数。
  • 开发者在写一个模块文件时,难免会有些方法需要进行测试,但如果测试代码就简单的放在文件中,其他程序在导入该模块时,会自动执行测试的代码,这肯定不是我们想要看到的,所以Python提供了魔术变量__name__来避免这种情况的发生:
    当在模块文件中测试代码时,__name__变量的值为__main__,当在其他导入该模块的程序中运行时,__name__变量的值为该文件的名称,因此,我们在写测试代码时,可以在前面加上一句
if __name__ == '__main__':

这样一来,只有当我们在运行模块文件时,才会执行这段测试代码。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值