天天看點

Python中if __name__ == '__main__':作用

#hello.py

def sayHello():

str="hello"

print(str);

if__name__=="__main__":

print ('This is main of module "hello.py"')

sayHello()

python作為一種腳本語言,我們用python寫的各個module都可以包含以上那麼一個累死c中的main函數,隻不過python中的這種__main__與c中有一些差別,主要展現在:

1、當單獨執行該module時,比如單獨執行以上hello.py: python hello.py,則輸出

This is main of module "hello.py"

hello

可以了解為"if __name__=="__main__":" 這一句與c中的main()函數所表述的是一緻的,即作為入口;

2、當該module被其它module 引入使用時,其中的"if __name__=="__main__":"所表示的Block不會被執行,這是因為此時module被其它module引用時,其__name__的值将發生變化,__name__的值将會是module的名字。比如在python shell中import hello後,檢視hello.__name__:

>>>import hello

>>> hello.__name__

'hello'

>>>

3、是以,在python中,當一個module作為整體被執行時,moduel.__name__的值将是"__main__";而當一個module被其它module引用時,module.__name__将是module自己的名字,當然一個module被其它module引用時,其本身并不需要一個可執行的入口main了。可以說python中的這種用法很靈活啊。

QQ:519841366

本頁版權歸作者和部落格園所有,歡迎轉載,但未經作者同意必須保留此段聲明,

且在文章頁面明顯位置給出原文連結,否則保留追究法律責任的權利