小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

為什么寫 Python 腳本時,一定要加上if __name__ == '__main__'?

 Yy3318q 2024-06-02 發(fā)布于廣西

在Python編程中,if __name__ == '__main__':這行代碼經(jīng)常出現(xiàn)在腳本的末尾。很多初學者可能對此感到困惑,不明白其真正的用途和重要性。

本文將詳細解釋這句代碼的作用,并深入探討__name__和__main__的含義,最后通過具體案例來進一步闡釋其實際應用。


if __name__ == '__main__'有什么作用?

首先,我們來了解if __name__ == '__main__':這句代碼的作用。

在Python中,每個Python文件都可以作為一個模塊被其他模塊導入,而當一個Python文件被直接運行時,它也會作為主程序執(zhí)行。這句代碼的目的就是判斷當前腳本是作為模塊被導入還是作為主程序運行:

圖片

● 如果是作為主程序運行,那么if __name__ == '__main__':下面的代碼塊將會被執(zhí)行;


● 如果是作為模塊被導入,則不會執(zhí)行這個代碼塊。


 __name__和__main__是什么?

__name__是一個內(nèi)置變量,它代表當前模塊的名字。當一個模塊被直接運行時,__name__的值會被設置為'__main__'。

圖片

而如果這個模塊是被導入到其他模塊中,__name__的值則會被設置為這個模塊的名字。

__main__是一個特殊的字符串,用于標識主程序。當Python解釋器直接運行一個腳本時,它會將這個腳本的__name__設置為'__main__'。


案例一

現(xiàn)在,我們通過一個具體的案例來講解這句代碼的作用。

假設我們有兩個Python文件:main_script.py和helper_module.py。

helper_module.py的內(nèi)容如下:

def helper_function():  
    print('Helper function called.')
  
if __name__ == '__main__':
    print('This is being run as the main program.')

main_script.py`的內(nèi)容如下:

import helper_module
  
helper_module.helper_function()



1、運行helper_module.py

當我們直接運行helper_module.py時,輸出將會是:

圖片

這是因為__name__被設置為'__main__',helper_module.py是作為主程序運行的,所以只有if __name__ == '__main__':下面的代碼塊被執(zhí)行了。



2、運行main_script.py

然而,當我們運行main_script.py時,輸出將會是:
圖片

注意,“This is being run as the main program.”這句話并沒有被打印出來。

這是因為在main_script.py中,helper_module是被作為模塊導入的,所以它的__name__值不是'__main__',而是'helper_module'。

因此,if __name__ == '__main__':下面的代碼塊沒有被執(zhí)行。

案例二

接下來我們再來看一個案例。

假設我們有一個名為calculator.py的Python腳本,它包含一個簡單的加法函數(shù)和一個用于測試該函數(shù)的代碼塊。

calculator.py的內(nèi)容如下:

def add_numbers(a, b):  
    '''返回兩個數(shù)字的和。'''  
    return a + b
  
# 測試代碼塊
if __name__ == '__main__':
    result = add_numbers(5, 3)
    print(f'The sum of 5 and 3 is {result}')

現(xiàn)在,假設我們還有一個名為application.py的腳本,它想要使用calculator.py中的add_numbers函數(shù)。

application.py的內(nèi)容如下:

import calculator
  
# 使用calculator模塊中的add_numbers函數(shù)
sum_result = calculator.add_numbers(10, 20)
print(f'The sum of 10 and 20 is {sum_result}')

application.py的運行結果如下:
圖片

由于我們在calculator.py中使用了if __name__ == '__main__',所以當我們運行application.py時,只有add_numbers函數(shù)被導入和使用,而測試代碼塊不會被執(zhí)行。

這樣,我們就可以確保calculator.py作為模塊被導入時,只會提供函數(shù)運算功能,而不會執(zhí)行任何額外的代碼。

總結來說,if __name__ == '__main__':這句代碼允許我們編寫既可以獨立運行又可以作為模塊導入的代碼。

通過檢查__name__變量的值,我們可以控制哪些代碼在模塊被導入時不執(zhí)行,而只在腳本作為主程序運行時執(zhí)行。這是一種良好的編程實踐,可以提高代碼的模塊化和可重用性。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多