Python中__name__的具體使用
當(dāng)你直接運行一個 Python 文件時,無論該文件導(dǎo)入了多少其他的模塊,__name__ 的值仍然是 "__main__"。這是因為 __name__ 的值是由 Python 解釋器根據(jù)腳本的運行方式來設(shè)定的,而不是由腳本內(nèi)部的導(dǎo)入語句決定的。
先總結(jié)
- 一個py文件對應(yīng)一個
__name__ - 文件直接運行時:當(dāng)一個文件被直接運行時,它的
__name__是"__main__"。 - 文件被調(diào)用時:當(dāng)一個文件被其他文件調(diào)用時,它的
__name__是該文件的名字(不帶.py擴展)。
當(dāng)直接運行 main.py
假設(shè)你有以下文件結(jié)構(gòu):
module_a.pymodule_b.pymain.py
當(dāng)直接運行 main.py 時,main.py 的 __name__ 會是 "__main__"。因此,if __name__ == "__main__": 里的代碼會被執(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 時,輸出將是:
Main program started
Hello, Alice! (From module_a)
Hello, Bob! (From module_b)
當(dāng) main.py 在另一個腳本中被調(diào)用
如果 main.py 被另一個腳本導(dǎo)入,那么 main.py 的 __name__ 將是 "main"(取決于文件名),因此 if __name__ == "__main__": 里的代碼不會被執(zhí)行。
假設(shè)你有另一個腳本 runner.py:
# runner.py
import main
print("Runner script started")
main.main() # 顯式調(diào)用 main 函數(shù)
當(dāng)你執(zhí)行 python runner.py 時,輸出將是:
Runner script started
Main program started
Hello, Alice! (From module_a)
Hello, Bob! (From module_b)
總結(jié)
因此,無論你在 main.py 中導(dǎo)入了多少其他的模塊,只要你是直接運行 main.py,它的 __name__ 就會是 "__main__",if __name__ == "__main__": 里的代碼就會被執(zhí)行。
到此這篇關(guān)于Python中__name__的具體使用的文章就介紹到這了,更多相關(guān)Python __name__內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python數(shù)據(jù)結(jié)構(gòu)鏈表之單向鏈表(實例講解)
下面小編就為大家?guī)硪黄猵ython數(shù)據(jù)結(jié)構(gòu)鏈表之單向鏈表(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07
python接口自動化之使用token傳入到header消息頭中
這篇文章主要介紹了python接口自動化之使用token傳入到header消息頭中問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
ndarray數(shù)組的轉(zhuǎn)置(transpose)和軸對換方式
這篇文章主要介紹了ndarray數(shù)組的轉(zhuǎn)置(transpose)和軸對換方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02
Python Paramiko實現(xiàn)SSHv2協(xié)議輕松管理遠程服務(wù)器
這篇文章主要為大家介紹了Python Paramiko實現(xiàn)SSHv2協(xié)議輕松管理遠程服務(wù)器,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01
基于Pyinstaller打包Python程序并壓縮文件大小
這篇文章主要介紹了基于Pyinstaller打包Python程序并壓縮文件大小,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-05-05
深入掌握Python模塊創(chuàng)建導(dǎo)入和使用
這篇文章主要為大家介紹了深入掌握Python模塊創(chuàng)建導(dǎo)入和使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10

