python中的ifnamemainmain 是什麼意思呢

2022-02-03 01:44:07 字數 3182 閱讀 6834

1樓:肥書意邗彩

這個指令碼被執行的時候,__name__

值就是__main__

,才會執行

main()函式

如果這個指令碼是被

import

的話,__name__的值不一樣。main()函式就不會被呼叫。

這個句子用來寫既能直接執行,又能給其他python程式import,提供庫呼叫的指令碼

python裡if __name__ == "__main__":是幹什麼的

2樓:匿名使用者

這個表示執行的是此**所在的檔案。 如果這個檔案是作為模組被其他檔案呼叫,不會執行這裡面的**。 只有執行這個檔案時, if 裡面的語句才會被執行。

這個功能經常可以用於進行測試。

python中的「__name__ =="__main__"」是什麼意思?

python3解釋一下if __name__=="__main__":是什麼意思?如圖

python 中的if __name__=='__main__': main()是什麼 意思呢

3樓:大雄和哆啦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 屬性中。

4樓:老夭來了

這個一般用來測試模組功能的,只有直接執行[python 模組.py]的時候才會執行這個,正確的應該是:

if  __name__ == '__main__':

#操作如果解決了您的問題請採納!

如果未解決請繼續追問

5樓:莫查名

這個指令碼被執行的時候,__name__ 值就是 __main__ ,才會執行 main()函式

如果這個指令碼是被 import 的話,__name__的值不一樣。main()函式就不會被呼叫。

這個句子用來寫既能直接執行,又能給其他python程式import,提供庫呼叫的指令碼

python中的__name__ =="__main__"是什麼意思呢 10

6樓:匿名使用者

__name__為python程式內建屬性

__name__為__main__時表示程式作為主程式執行,而不是使用import 作為模組匯入

7樓:無盡飄雪

__name__系統變數指示模組應如何被載入,他的值為"__main__"時表示當前模組是被直接執行。

由於主程式**無論模組是被匯入還是直接被執行都會執行,所以我們需要一種方式在執行時檢測該模組是被匯入還是被直接執行。該方式也就是__name__系統變數。如果模組是被匯入,__name__的值為模組名字;如果是被直接執行,__name__的值為"__main__"。

此處所說的模組可以簡單理解為一個.py檔案。

python中 self和if __name__ == __main__ 是什麼意思?

8樓:匿名使用者

self相當於c#和c++裡面的this;

if __name__ == __main__相當於一個測試套件,

就是在當前py程式裡面,驗證程式的執行,

但是當其他的程式引用時,會忽略掉,這個測試程式!

9樓:

self在定義類時表示自身。換成別的變數名也可以,但用self是慣例。

if __name__=='__main__'的**塊可以放置只有在程式自身執行而不是被作為模組呼叫時才執行的**。

10樓:依依離人照落花

1 self是自身的意思,不知道有沒有學過其他語言,相當於this;

2 如果程式是自身在執行,它的__name__值就是"__main__";如果它作為模組被被別的程式匯入的,比如:import re 那麼,他的__name__就不是"__main__"了。所以,使用這個條件語句,可以使這個條件語句塊中的命令只在它獨立執行時才執行。

在python __name__='__main__' 是什麼意思呢?

11樓:尹卓群

python中,當開啟一個.py檔案時,經常會在**的最下面看到if __name__ == '__main__':,

模組是物件,並且所有的模組都有一個內建屬性 __name__。

一個模組的 __name__ 的值取決於如何應用模組。如果 import 一個模組,那麼模組__name__ 的值通常為模組檔名,不帶路徑或者副檔名。

但是也可以像一個標準的程式那樣直接執行模組,在這 種情況下, __name__ 的值將是一個特別預設"__main__"。

在cmd 中直接執行.py檔案,則__name__的值是'__main__';

而在import 一個.py檔案後,__name__的值就不是'__main__'了;

從而用if __name__ == '__main__'來判斷是否是在直接執行該.py檔案。

python中的小問題,python中的一個小問題

函式遞迴呼叫的終止條件是引數n為0的時候,那你要保證n是整型。階乘本來就是整數的運算。符點數是不精確的,不建議用 來判斷是否和某個值相等,也即是n 0是基本上不會成立的。python中一個小問題 第一行你寫的是tempstr,s打的小寫的。下面成了大寫的 關於python的一個小問題 20 pyth...

python問題,python中的,問題?

反轉一個list,返回一個迭代器 iterator 如 range 10 0,1,2,3,4,5,6,7,8,9 reversed range 10 x for x in reversed range 10 9,8,7,6,5,4,3,2,1,0 還可以這樣完成反轉 range 10 1 9,8,7...

python轉義雙引號,python中如何輸出引號

為啥一定都用雙引號呢?gp.calculatefield management a,type 林地 外面是單引號,裡面可以直接使用雙引號,不必轉義 如果使用變數代替可以這樣 a 林地 b s a gp.calculatefield management a,type b 也可以這樣 a 林地 b a...