关于python的__name__理解

Python中,每个模块有个__name__属性,当模块是在自己文件下执行的,那么它的__name__属性是__main__,而当它被引入到别的模块中,那么在别的模块下(import模块名 可以引入一个模块),他的__name__值是他的文件名,这样的设定其实不好理解其用处.

很多时候,我们在一个模块写了一段优美的程序,并且下面也用到了这一段优美的程序,然而,优美的程序在个个模块都是可以用的,但是我们又不想引入模块后,执行引入模块的程序,例子如下:

#conding:urf-8

#PpythonTest.py

def add(a,b):

  return a+b

print(add(2,3))

在这个模块,我们写了个方法,而且欢快的执行了它

#new.py

Improt PythonTest

print(PythonTest.add(1,2))

然而在这个模块我们好想用这个方法,于是我们发现引入后,原来模块的程序也执行了,所以是如下执行结果

5

3

所以,如果像这样写入

#coding:utf-8

#PythonTest.py

def add(a,b):

  return a+b

if __name__=='__main__'

  print(add(2,3))

就可以不影响到那个模块的程序,所以加这个属性判断是个不错的习惯。

上一篇:狼抓兔子(bzoj 1010)


下一篇:CAD扩展属性的提取--FME方式