python模块中的__name__属性

python 里__name__属性是一个特殊变量:

1、__name__是一个变量。前后加了双下划线是因为是因为这是系统定义的名字。普通变量不要使用此方式命名变量。

2、Python有很多模块,而这些模块是可以独立运行的!这点不像C++和C的头文件。

3、import的时候是要执行所import的模块的。

4、__name__就是标识模块的名字的一个系统变量。这里分两种情况:假如当前模块是主模块(也就是调用其他模块的模块),那么此模块名字就是__main__,通过if判断这样就可以执行“__mian__:”后面的主函数内容;假如此模块是被import的,则此模块名字为文件名字(不加后面的.py),通过if判断这样就会跳过“__mian__:”后面的内容。

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



例:

# -*- coding: utf-8 -*-

' a test module ' #文档注释 可通过 __doc__ 访问

__author__ = 'frala' #作者注释

import sys

def test():
      args = sys.argv
      if len(args)==1:
            print ('Hello world!')
      elif len(args)==2:
            print ('Hello,%s' % args[1])
      else:
            print ('Too many arguments!')
            
if __name__ == '__main__':
      test()
由于此程序是主程序,所以一旦执行

因为__name__ == '__main__',进入if,所以会执行test函数。

import hello

print (hello.__name__)

现在hello模块中的__name__=='hello' ,不再是‘__main__’了。

所以hello模块中 不在进入if语句。



你可能感兴趣的:(Python)