1樓:畫堂晨起
python之if __name__ ==「__main__」的意思是:判斷是否執行正確。具體如下:
1、每個python模組都包含內建的變數__name__。(__name__是python的乙個內建類屬性,它天生就存在於乙個python程式中,代表對應程式名稱)
2、當執行模組被執行的時候,__name__等於當前執行檔案的名稱【模組名】(包含了字尾.py);而「__main__」等於當前執行檔案的名稱【模組名】(包含了字尾.py)。進而當模組被直接執行時,__name__ == 'main'結果為真。
3、如果import到其他模組中,則__name__等於模組名稱(不包含字尾.py)。
型別python採用動態型別系統。在編譯的時候,python不會檢查物件是否擁有被呼叫的方法或者屬性,而是直至執行時,才做出檢查。所以操作物件時可能會丟擲異常。
不過,雖然python採用動態型別系統,它同時也是強型別的。python禁止沒有明確定義的操作,比如數字加字串。
與其它物件導向語言一樣,python允許程式設計師定義型別。構造乙個物件只需要像函式一樣呼叫型別即可,比如,對於前面定義的fish型別,使用fish()。
型別本身也是特殊型別type的物件(type型別本身也是type物件),這種特殊的設計允許對型別進行反射程式設計。
2樓:匿名使用者
沒錯。這個地方的定義,是這樣的:
乙個.py檔案,如果是自身在執行,那麼他的__name__值就是"__main__";
如果它是被別的程式匯入的(作為乙個模組),比如:
import re
那麼,他的__name__就不是"__main__"了。
所以,在.py檔案中使用這個條件語句,可以使這個條件語句塊中的命令只在它獨立執行時才執行
3樓:匿名使用者
python中,當開啟乙個.py檔案時,經常會在**的最下面看到if __name__ == '__main__':,現在就來介紹一下它的作用,模組是物件,並且所有的模組都有乙個內建屬性 __name__。
乙個模組的 __name__ 的值取決於如何應用模組。如果 import 乙個模組,那麼模組__name__ 的值通常為模組檔名,不帶路徑或者副檔名。但是也可以像乙個標準的程式那樣直接執行模組,在這 種情況下, __name__ 的值將是乙個特別預設"__main__"。
在cmd 中直接執行.py檔案,則__name__的值是'__main__';而在import 乙個.py檔案後,__name__的值就不是'__main__'了;從而用if __name__ == '__main__'來判斷是否是在直接執行該.
py檔案。
4樓:dangerous球
同乙個目錄下寫建倆py
a.py
a.py的輸出結果
b.py
b.py輸出結果
動手試試
5樓:匿名使用者
python中文教程網
6樓:
條件語句.
當變數 __name__ = __main__ 變數成立
python中的「__name__ =="__main__"」是什麼意思?
python 中的if __name__=='__main__': main()是什麼 意思呢
7樓:肥書意邗彩
這個指令碼被執行的時候,__name__
值就是__main__
,才會執行
main()函式
如果這個指令碼是被
import
的話,__name__的值不一樣。main()函式就不會被呼叫。
這個句子用來寫既能直接執行,又能給其他python程式import,提供庫呼叫的指令碼
python裡if __name__ == "__main__":是幹什麼的
8樓:匿名使用者
這個表示執行的是此**所在的檔案。 如果這個檔案是作為模組被其他檔案呼叫,不會執行這裡面的**。 只有執行這個檔案時, if 裡面的語句才會被執行。
這個功能經常可以用於進行測試。
python 中的if __name__=='__main__': main()是什麼 意思呢
9樓:大雄和哆啦a夢
乙個 python 原始碼檔案除了可以被直接執行外,還可以作為模組(也就是庫)被匯入。不管是匯入還是直接執行,最頂層的**都會被執行(python 用縮進來區分**層次)。而實際上在匯入的時候,有一部分**我們是不希望被執行的。
if __name__ == '__main__' 就相當於是 python 模擬的程式入口。python 本身並沒有規定這麼寫,這只是一種編碼習慣。由於模組之間相互引用,不同模組可能都有這樣的定義,而入口程式只能有乙個。
到底哪個入口程式被選中,這取決於 __name__ 的值。
舉例子說明一下,假設有乙個 const.py 檔案,內容如下:
pi = 3.14
def main():
print "pi:", pi
main()
擴充套件資料
如果模組是被直接執行的,則**塊被執行,如果模組是被匯入的,則**塊不被執行。實際上,這個問題還可以衍生出其他的一些知識點,例如 __main__.py 檔案與 python 的 -m 引數。
輸出結果只列出了關鍵的部分,應該很容易看出他們之間的差異。直接執行是把 run.py 檔案所在的目錄放到了 sys.
path 屬性中。以模組方式執行是把你輸入命令的目錄(也就是當前工作路徑),放到了 sys.path 屬性中。
10樓:老夭來了
這個一般用來測試模組功能的,只有直接執行[python 模組.py]的時候才會執行這個,正確的應該是:
if __name__ == '__main__':
#操作如果解決了您的問題請採納!
如果未解決請繼續追問
11樓:莫查名
這個指令碼被執行的時候,__name__ 值就是 __main__ ,才會執行 main()函式
如果這個指令碼是被 import 的話,__name__的值不一樣。main()函式就不會被呼叫。
這個句子用來寫既能直接執行,又能給其他python程式import,提供庫呼叫的指令碼
python中 self和if __name__ == __main__ 是什麼意思?
12樓:匿名使用者
self相當於c#和c++裡面的this;
if __name__ == __main__相當於乙個測試套件,
就是在當前py程式裡面,驗證程式的執行,
但是當其他的程式引用時,會忽略掉,這個測試程式!
13樓:
self在定義類時表示自身。換成別的變數名也可以,但用self是慣例。
if __name__=='__main__'的**塊可以放置只有在程式自身執行而不是被作為模組呼叫時才執行的**。
14樓:依依離人照落花
1 self是自身的意思,不知道有沒有學過其他語言,相當於this;
2 如果程式是自身在執行,它的__name__值就是"__main__";如果它作為模組被被別的程式匯入的,比如:import re 那麼,他的__name__就不是"__main__"了。所以,使用這個條件語句,可以使這個條件語句塊中的命令只在它獨立執行時才執行。
python中的__name__ =="__main__"是什麼意思呢 10
15樓:匿名使用者
__name__為python程式內建屬性
__name__為__main__時表示程式作為主程式執行,而不是使用import 作為模組匯入
16樓:無盡飄雪
__name__系統變數指示模組應如何被載入,他的值為"__main__"時表示當前模組是被直接執行。
由於主程式**無論模組是被匯入還是直接被執行都會執行,所以我們需要一種方式在執行時檢測該模組是被匯入還是被直接執行。該方式也就是__name__系統變數。如果模組是被匯入,__name__的值為模組名字;如果是被直接執行,__name__的值為"__main__"。
此處所說的模組可以簡單理解為乙個.py檔案。
是什麼意思, 是什麼意思
括號 ku h o 括號的用法 表示文章中的注釋部分。這種注釋是夾在正文中間的夾註。寫文章寫到某個地方,為了讓讀者了解得更透徹,有時需要加個注釋。這種注釋,要用括號表明。注釋的性質是多種多樣的。1 parenthese,curve bracket square bracket,angle brack...
是什麼意思, 是什麼意思啊?
釋義 1下著2褲裝 3褲子4 雙語例句 上日本 小學生 冬 而且日本小學生冬天都是穿短褲的。脫 靴下?脫裙子 褲子 褲衩 襪子 長筒襪 澪 青白 比 御阪 下著 見劣 御阪的 和澪的藍白條紋比起來真是太挫了。 江戶來客 多看看日語原文詞典就可以的 pants 1 2 式 短 下 日 panntu 名...
是什麼意思, 3 是什麼意思
單獨的一個 是沒有意義的。是 的濁音,在鎌倉時代以前發的是舌尖有聲破裂音 du 後來變成了舌尖有聲破裂摩擦音 dzu 室町末期開始和 zu 的發音開始混淆,到了現代 和 的發音已經沒什麼區分了。但是使用上還是要注意,不要寫錯。例如 付 連 等。平假名 平假名 是為了寫和歌 物語而誕生,主要使用者是女...