test.py
????print("這是__name__:");
????print(__name__);
????if __name__ == "__main__":
????print("__name__等于__main__")
import_test.py
import test
執(zhí)行python test.py
這是__name__:
__main__
__name__等于__main__
執(zhí)行python import_test.py
這是__name__:
test
每個python模塊(python文件,也就是此處的test.py和import_test.py)都包含內置的全局變量__name__。
全局變量__name__存放的就是模塊的名字(也就是文件名)
而特殊情況就是,當一個模塊作為腳本執(zhí)行時或者在交互式環(huán)境中,如Ipython、Python自帶的shell等直接運行代碼,__name__的值不再是模塊名,而是__main__
如果import到其他模塊中,則__name__等于模塊名稱(不包含后綴.py)。
而“__main__”相當于當前執(zhí)行文件的名稱(包含了后綴.py)。
進而當模塊被直接執(zhí)行時,__name__ == '__main__'結果為真。