ga('set', 'anonymizeIp', 1);
Categories: CodingPython

[python] __name__ == “__main__”解析

Share

在一些python程式碼中常常會看到__name__==”__main__”這段,這是代表什麼意思呢?

在多檔案的程式架構中,函式被重複使用的機率相當高,這時候就要對主程式跟函式分清楚了。

在python中常常可以看到以下這段,他代表什麼意思呢?

if __name__ == "__main__":
    _A()

這邊我們用兩支程式來打個比方,
分別叫做 programA.py 與 programB.py。

programA.py:

def _A():
    print("AAA")

print("using program A")
_A()

programB.py:

from programA import _A

print("using program B")
_A()

看完以上兩支程式,
我們先使用command line執行programA.py,
可以得到以下結果。

using program A
AAA

再來,我們執行programB.py。

using program A
AAA
using program B
AAA

上面可以發現,在執行programB.py時,
在引用的過程就先執行一遍programA.py的程式碼了,
所以為了避免發生此情況,
我們要了解python程式的基礎執行方式。

python中的__name__是隱藏變數,
代表的是『模組名稱』,
若該檔案是被引用,則其__name__就會是模組名稱,
若是直接由命令列執行,其值會是__main__。

由上方的介紹,我們就可以利用__name__的特性來讓某些程式獨立執行。

我們將programA.py修改如下:

def _A():
    print("AAA")

if __name__=="__main__":
    print("using program A")
    _A()

如此修改,就可以避免呼叫時重複執行的情形發生。

Jys

Published by
Jys

Recent Posts

[python] Flask Create RESTful API

This article gi... Read More

3 年 前發表

[Javascript] 新增/刪除JSON中key值

在web訊息交換常會需要對JS... Read More

3 年 前發表

[JAVA] SQL Server Connection

本文介紹JAVA連線SQL s... Read More

3 年 前發表