您的位置:首页 > 编程语言 > Python开发

关于Python的主(main)函数的原理

2016-10-13 09:39 639 查看
主函数调用函数的小程序:

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主函数。 以下面的程序为例:

[python] view
plain copy

#hello.py   

def foo():   

    str="function"   

    print(str);   

if __name__=="__main__":   

    print("main")   

    foo()   

其中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__ 

当你以模块导入使用时,这个属性便是这个模块的名字。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: