if __name__ == '__main__' 用法理解


我們知道:

一個Python文件有兩種使用方法, 第一是直接作為腳本執行,第二是通過在其它py文件中導入該文件調用執行。
而if __name__ == '__main__'的作用就是控制這兩種情況的代碼執行過程。
簡言之:if __name == '__main__'下的代碼只有在被作為腳本執行的情況下才會執行
 

舉個例子:

新建test_01.py文件:

print('Run is good sport!')
print(__name__)
if __name__ == '__main__':
    print('我被當作腳本執行了')
 
# 執行test_01.py結果:
Run is good sport!
__main__
我被當作腳本執行了

新建test_02.py文件:

from name_main import test_01
print(__name__)
 
# 執行test_02.py結果:
Run is good sport!
name_main.test_01
__main__

分析:

第一次執行test_01.py文件:
test_01.py當作腳本執行,則腳本中的__name__就是'__main__',所以會依次執行
print('Run is good sport!')
print(__name__)
print('我被當作腳本執行了')
 
第二次執行test_02.py文件:
首先導入test_01.py文件,py文件在導入的時候會執行導入文件的代碼所以
print('Run is good sport!')
print(__name__)
然后由於test_01.py文件是作為模塊導入的,所以此時__name__就不會是'__main__'(而是導入的文件名name_main.test_01),所以if __name__ == '__main__'條件不成立
然后繼續執行
print(__name__),此時的__name__由於是test_02.py當作腳本執行,所以就是'__main__'
 

最后總結:

if __name__ == '__main__'的主要用處就是模塊當作腳本執行時的部分代碼私有化,也就是只有當作腳本執行的時候if __name__ == '__main__'下的代碼才會執行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM