国产探花免费观看_亚洲丰满少妇自慰呻吟_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__'“中加入一些我們的調試代碼,我們可以讓外部模塊調用的時候不執行我們的調試代碼,但是如果我們想排查問題的時候,直接執行該模塊文件,調試代碼能夠正常運行!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 商南县| 洮南市| 奉节县| 虞城县| 清河县| 班戈县| 安宁市| 梓潼县| 凯里市| 平阴县| 达尔| 仁怀市| 新丰县| 兴隆县| 安徽省| 甘孜县| 威信县| 惠州市| 射阳县| 磐石市| 鲜城| 天峨县| 福安市| 启东市| 皋兰县| 灵璧县| 隆昌县| 石泉县| 从化市| 驻马店市| 康保县| 于都县| 太白县| 平定县| 大同市| 始兴县| 韩城市| 本溪| 巴里| 兴安盟| 京山县|