• python中__name__的使用


    关于__name__:

    这几天开始学习Python,遇到一些问题,也解决了一些问题。

    其中if __name__ == '__main__':这句估计很多和我一样的初学者都是不求甚解。
    这里作一下解释:

    1:__name__是一个变量。前后加了双下划线是因为是因为这是系统定义的名字。普通变量不要使用此方式命名变量。
    2:Python有很多模块,而这些模块是可以独立运行的!这点不像C++和C的头文件。
    3:import的时候是要执行所import的模块的。
    4:__name__就是标识模块的名字的一个系统变量。这里分两种情况:假如当前模块是主模块(也就是调用其他模块的模块),那么此模块名字就是__main__,通过if判断这样就可以执行“__mian__:”后面的主函数内容;假如此模块是被import的,则此模块名字为文件名字(不加后面的.py),通过if判断这样就会跳过“__mian__:”后面的内容。

    通过上面方式,python就可以分清楚哪些是主函数,进入主函数执行;并且可以调用其他模块的各个函数等等。

    1. 如果模块是被导入,__name__的值为模块名字
    2. 如果模块是被直接执行,__name__的值为’__main__’

    #Py1.py
    #!/usr/bin/env python
    def test():
      print '__name__ = ',__name__
    if __name__ == '__main__':
      test()
    #Py2.py
    #!/usr/bin/env python
    import Py1.py
    def test():
      print '__name__ = ',__name__
    if __name__ == '__main__':
      test()
      print ‘Py1.py __name__ = ’,Py1.__name__

    执行结果:

    __name__=__main__
    Py1.py __name__=Py1

    通过结果可以知道,Py2.py直接执行,那么内建变量__name__的值为__main__,否则为模块的名字,通过这个特性可以在if语句里面添加测试代码,可以提高减少BUG,提高程序的健壮性。
    if __name__ == '__main__':
      test()

    参考博客:python中__name__的使用 - 冰滴的眼泪 - 博客园 (cnblogs.com)

  • 相关阅读:
    Android5.0 Gallery2上编译Gallery模块出错
    Ubuntu Linux系统下的SVN客户端工具PySVN
    ubuntu下如何安装及使用 pysvn-workbench
    系统数据库开启
    Ubuntu下使用SVN
    Ubuntu Linux 环境变量
    android 权限管理和签名 实现静默卸载
    Android系统权限及签名
    Android Security
    《Java程序猿面试笔试宝典》之字符串创建与存储的机制是什么
  • 原文地址:https://www.cnblogs.com/yds941268778/p/15223923.html
Copyright © 2020-2023  润新知