国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

淺析python 中__name__ = '__main__' 的作用

2020-02-23 05:31:59
字體:
來源:轉載
供稿:網友

很多新手剛開始學習python的時候經常會看到python 中__name__ = /'__main__/' 這樣的代碼,可能很多新手一開始學習的時候都比較疑惑,python 中__name__ = '__main__' 的作用,到底干嘛的?

有句話經典的概括了這段代碼的意義:

“Make a script both importable and executable”

意思就是說讓你寫的腳本模塊既可以導入到別的模塊中用,另外該模塊自己也可執行。

這句話,可能一開始聽的還不是很懂。下面舉例說明:

先寫一個模塊:

#module.pydef main():  print "we are in %s"%__name__if __name__ == '__main__':  main()

這個函數定義了一個main函數,我們執行一下該py文件發現結果是打印出”we are in __main__“,說明我們的if語句中的內容被執行了,調用了main():

但是如果我們從另我一個模塊導入該模塊,并調用一次main()函數會是怎樣的結果呢?

#anothermodle.pyfrom module import mainmain()

其執行的結果是:we are in module

但是沒有顯示”we are in __main__“,也就是說模塊__name__ = '__main__' 下面的函數沒有執行。

這樣既可以讓“模塊”文件運行,也可以被其他模塊引入,而且不會執行函數2次。這才是關鍵。

總結一下:

如果我們是直接執行某個.py文件的時候,該文件中那么”__name__ == '__main__'“是True,但是我們如果從另外一個.py文件通過import導入該文件的時候,這時__name__的值就是我們這個py文件的名字而不是__main__。

這個功能還有一個用處:調試代碼的時候,在”if __name__ == '__main__'“中加入一些我們的調試代碼,我們可以讓外部模塊調用的時候不執行我們的調試代碼,但是如果我們想排查問題的時候,直接執行該模塊文件,調試代碼能夠正常運行!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 陆良县| 什邡市| 新巴尔虎左旗| 义乌市| 江永县| 陆丰市| 霸州市| 安平县| 东兰县| 抚州市| 玉林市| 盐池县| 饶阳县| 祁连县| 石河子市| 固镇县| 丹江口市| 神农架林区| 共和县| 萨迦县| 临桂县| 昆山市| 万宁市| 景东| 左贡县| 洛浦县| 云龙县| 郧西县| 哈密市| 库尔勒市| 辽中县| 梁平县| 彭州市| 莱芜市| 肥城市| 新疆| 乐业县| 本溪市| 沭阳县| 江达县| 丰原市|