一般只要被import 的進來的主程式,都會被自動執行
原因在於:
當 Python 檔案(模組、module)被引用的時候,檔案內的每一行都會被 Python 直譯器讀取並執行(所以 page1.py內的程式碼會被執行)
Python 直譯器執行程式碼時,有一些內建、隱含的變數,__name__就是其中之一,其意義是「模組名稱」。如果該檔案是被引用,其值會是模組名稱;
但若該檔案是(透過命令列)直接執行,其值會是 __main__。
可試著在 page1.py 內加上 __name __ 印出看看 , 值的名稱會為__main__
name1.py
def myfn1():
print("1.hello");
print("1.hi");
myfn1();
print("name=",__name__);
name2.py
from name1 import myfn1
print("2.hi");
myfn1();
主程式在被引用的時候也被執行了,原因在於:
- 當 Python 檔案(模組、module)被引用的時候,檔案內的每一行都會被 Python 直譯器讀取並執行(所以
page1.py
內的程式碼會被執行) - Python 直譯器執行程式碼時,有一些內建、隱含的變數,
__name__
就是其中之一,其意義是「模組名稱」。如果該檔案是被引用,其值會是模組名稱; - 但若該檔案是(透過命令列)直接執行,其值會是
__main__
。
data1.py
def myfn1():
print("1.hello");
if __name__ == '__main__':
print("1.hi");
myfn1();
data2.py
from data1 import myfn1
print("2.hi");
myfn1();
Yiru@Studio - 關於我 - 意如