Python中__name__的具體使用
當(dāng)你直接運(yùn)行一個(gè) Python 文件時(shí),無(wú)論該文件導(dǎo)入了多少其他的模塊,__name__
的值仍然是 "__main__"
。這是因?yàn)?nbsp;__name__
的值是由 Python 解釋器根據(jù)腳本的運(yùn)行方式來(lái)設(shè)定的,而不是由腳本內(nèi)部的導(dǎo)入語(yǔ)句決定的。
先總結(jié)
- 一個(gè)py文件對(duì)應(yīng)一個(gè)
__name__
- 文件直接運(yùn)行時(shí):當(dāng)一個(gè)文件被直接運(yùn)行時(shí),它的
__name__
是"__main__"
。 - 文件被調(diào)用時(shí):當(dāng)一個(gè)文件被其他文件調(diào)用時(shí),它的
__name__
是該文件的名字(不帶.py
擴(kuò)展)。
當(dāng)直接運(yùn)行 main.py
假設(shè)你有以下文件結(jié)構(gòu):
module_a.py
module_b.py
main.py
當(dāng)直接運(yùn)行 main.py
時(shí),main.py
的 __name__
會(huì)是 "__main__"
。因此,if __name__ == "__main__":
里的代碼會(huì)被執(zhí)行。
# main.py import module_a import module_b def main(): print("Main program started") module_a.greet_a("Alice") module_b.greet_b("Bob") if __name__ == "__main__": main()
當(dāng)你執(zhí)行 python main.py
時(shí),輸出將是:
Main program started
Hello, Alice! (From module_a)
Hello, Bob! (From module_b)
當(dāng) main.py 在另一個(gè)腳本中被調(diào)用
如果 main.py
被另一個(gè)腳本導(dǎo)入,那么 main.py
的 __name__
將是 "main"
(取決于文件名),因此 if __name__ == "__main__":
里的代碼不會(huì)被執(zhí)行。
假設(shè)你有另一個(gè)腳本 runner.py
:
# runner.py import main print("Runner script started") main.main() # 顯式調(diào)用 main 函數(shù)
當(dāng)你執(zhí)行 python runner.py
時(shí),輸出將是:
Runner script started
Main program started
Hello, Alice! (From module_a)
Hello, Bob! (From module_b)
總結(jié)
因此,無(wú)論你在 main.py
中導(dǎo)入了多少其他的模塊,只要你是直接運(yùn)行 main.py
,它的 __name__
就會(huì)是 "__main__"
,if __name__ == "__main__":
里的代碼就會(huì)被執(zhí)行。
到此這篇關(guān)于Python中__name__的具體使用的文章就介紹到這了,更多相關(guān)Python __name__內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
將python依賴(lài)包打包成window下可執(zhí)行文件bat方式
今天小編就為大家分享一篇將python依賴(lài)包打包成window下可執(zhí)行文件bat方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12Python中一些自然語(yǔ)言工具的使用的入門(mén)教程
這篇文章主要介紹了Python中一些自然語(yǔ)言工具的使用的入門(mén)教程,本文來(lái)自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下2015-04-04Python抓取數(shù)據(jù)到可視化全流程的實(shí)現(xiàn)過(guò)程
這篇文章主要介紹了Python抓取數(shù)據(jù)到可視化全流程的實(shí)現(xiàn)過(guò)程,2022-01-01利用Python實(shí)現(xiàn)讀取Word表格計(jì)算匯總并寫(xiě)入Excel
這篇文章主要給大家介紹了關(guān)于如何利用Python實(shí)現(xiàn)讀取Word表格計(jì)算匯總并寫(xiě)入Excel的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-01-01Python機(jī)器學(xué)習(xí)pytorch交叉熵?fù)p失函數(shù)的深刻理解
這篇文章主要為大家介紹了Python機(jī)器學(xué)習(xí)中對(duì)交叉熵?fù)p失函數(shù)的深刻理解,文中作出了詳細(xì)易懂的講解,有需要的朋友可以借鑒參考下希望能夠有所幫助2021-10-10python末尾逗號(hào)導(dǎo)致返回結(jié)果是一個(gè)元組的問(wèn)題
在Python中,除非特別需要返回或傳參元組,一般不推薦在語(yǔ)句末尾添加逗號(hào),應(yīng)該注意檢查是否存在末尾逗號(hào)導(dǎo)致的這些副作用,這篇文章主要介紹了python末尾逗號(hào)導(dǎo)致返回結(jié)果是一個(gè)元組,需要的朋友可以參考下2023-09-09