其實很簡單
if __name__ == '__main__': 就是一個判斷
__name__是系統變量
__name__有一個特性,在當前文件運行是__main__,調用文件就是調用文件的路徑了
可以先 print(__name__)
運行當前文件
結果為"__main__"
但是當你用當前文件調用其他文件(模塊)時,文件里面有print(__name__),就是文件路徑了
假如我cal文件代碼如下
def add(x, y): return x + y print(__name__)
我在test文件調用cal文件
解釋一下imoprt會做什么
1.會執行導入的文件的代碼
2.引用導入文件的變量
import cal
這里執行結果就是cal文件的路徑了
執行test文件,不是執行cal文件
知道這個特性就很容易明白if __name__ == '__main__':是有什么用的了
還不明白,我給你們解釋一下:
if __name__ == '__main__':在模塊里面用於放測試代碼,因為導入模塊就會執行模塊的代碼,但是模塊的測試代碼我們是不需要執行的,我們只需要模塊的功能,這是就要用到if __name__ == '__main__':
當別人調用這個模塊的時候if__name__就不等於"__main__"了
__name__是模塊的路徑了,所以if__name__是不等於__main__的,不滿足條件,不執行if __name__ == '__main__':下面的代碼
但是你去模塊文件執行模塊文件,__name__就是等於__main__了,滿足條件.所以可以用於測試
