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

來源:互聯網
上載者:User

標籤:

#hello.pydef 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中的這種用法很靈活啊。

 

完。

 

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.