python中if __name__ == '__main__'是什么?


__name____main__認識

作用:一般用於測試程序的功能,if __name__ == '__main__':下面的代碼會被執行,但當前.py文件被當做模塊導入的時候,main下面的代碼就不會被執行,防止測試代碼被執行。

語法:

if __name__ == '__main__':
            要執行的測試模塊
 

if __name__ == "__main__":可以看成是python程序的入口,就像java中的main()方法,但不完全正確。

.py文件中,除了def后面定義函數外的代碼都會被認為是“main”方法中的內容,從而從上而下執行。

如果只是寫一個print('hello world'),那這一句話就是一個程序,因此不需要所謂的"main"方法入口,直接運行測試就可以。

但如果是測試函數功能,我們就需要在.py文件中寫上if__name__=="__main__",再調用函數,當然,如果你不寫的話,也沒關系,也可以直接將函數加括號進行調用。

我們寫的目的就是防止后面會把當前.py文件當做模塊導入其他.py文件中,從而誤觸發測試代碼。

__name__的變化

1、__name__其實就是一個內置屬性,在自己的py文件中被執行,__name__屬性的值就是__main__

示例代碼:

# test.py
print("first")
 
 
def say_hello():
    print(__name__)
 
 
if __name__ == '__main__':
    print(__name__)
    say_hello()

運行結果:

first
__main__
__main__

2、將test.py文件導入其他文件中,__name__就會變為當前模塊的名字,例如:__test__

實例代碼:

# work.py
 
import test  # 導入test
 
 
if __name__ == '__main__':
    test.say_hello()
    print(__name__)

執行結果:

first
test
__main__

總結:python不像JAVA中一樣擁有main()方法的特點。所謂的入口其實也就是一個if條件語句,判斷成功就執行下面if中的代碼。JAVA等其他語言中會有特定的內置函數去識別main()方法入口,在main()方法中從上而下執行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM