主函数调用函数的小程序:
1 import sys 2 def Fuc(): 3 print 'hello' 4 5 if __name__ == '__main__': 6 if len(sys.argv) != 3: 7 print 'Usage: python input_name output_name' 8 exit(1) 9 f_input = sys.argv[1] 10 f_output = sys.argv[2] 11 Fuc() 12
释义:
5行“ if __name__ == '__main__':”含义:python文件后缀为".py"。 其中分两类:一类是直接执行, 另一类是作为模块被调用(import ***.py).
__name__ 作为模块的内置属性,即".py"文件的调用方式。如果等于“__main__"就直接执行本文件, 如果是别的就是作为模块被调用
6行:sys.argv 用来获取命令行参数。对于“python code.py input_name output_name ”,共三个参数:code.py为sys.argv[0], input_name 为sys.argv[1], output_name为sys.argv[2] 。 同时注意引入模块sys
初次接触Python的人会很不习惯Python没有main主函数。 以下面的程序为例:
其中if __name__=="__main__":这个程序块类似与Java和C语言的中main(主)函数
在Cmd中运行结果
C:\work\python\divepy>python hello.py
main
function
在Python Shell中运行结果
>>> import hello
>>> hello.foo()
function
>>> hello.__name__
'hello'
>>>
可以发现这个内置属性__name__自动的发生了变化。
这是由于当你以单个文件运行时,__name__便是__main__
当你以模块导入使用时,这个属性便是这个模块的名字。
在Cmd中运行结果
C:\work\python\divepy>python hello.py
main
function
在Python Shell中运行结果
>>> import hello
>>> hello.foo()
function
>>> hello.__name__
'hello'
>>>
可以发现这个内置属性__name__自动的发生了变化。
这是由于当你以单个文件运行时,__name__便是__main__
当你以模块导入使用时,这个属性便是这个模块的名字。